Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Excel-Import: 4 x einmalig + 1 x wöchentlich

Begonnen von ErreUno, August 21, 2024, 08:09:25

⏪ vorheriges - nächstes ⏩

ErreUno

Hallo zusammen,
trotz intensiver Suche konnte ich bisher keine Lösung für mein Problem finden (wahrscheinlich fehlt mir der richtige Suchbegriff). Vielleicht kann mir jemand einen Tipp geben.

Ich möchte 5 Excel-Tabellen mit dem gleichen Format in eine Access-Tabelle importieren.
Davon muss ich vier Tabellen einmalig importieren (Jahre 2020 - 2023) und eine Tabelle regelmäßig aktualisieren (Jahr 2024).

Wie stelle ich das an? Ich habe all drei Importvarianten getestet, komme aber nicht zum Ziel.
Gruß EU

PhilS

Zitat von: ErreUno am August 21, 2024, 08:09:25Ich habe all drei Importvarianten getestet, komme aber nicht zum Ziel.
Das solltest du genauer beschreiben.
Eigentlich sollte ein Import von Excel nach Access grundsätzlich erstmal ohne Probleme funktionieren. Wenn du nicht zum Ziel kommst, solltest du erklären, warum nicht.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

ErreUno

Hallo PhilS,
Ziel ist es, alle Daten nachher in einer Access-Tabelle zu haben, welche ich im Laufe des Jahres weiter mit dem 2024er Excel-Sheet erweitere.
Zuerst habe ich versucht nacheinander zwei Sheet über "Externe Daten aus Excel importieren" > "Erstellen Sie eine Verknüpfung zur Datenquelle, indem Sie eine verknüpfte Tabelle erstellen" zu importieren. Beim zweiten Import versucht er natürlich die angelegte Tabelle zu überschreiben => Sackgasse
Dann habe ich die "statischen" Sheets über "Importieren" und "Anfügen" importiert. Soweit so gut. Wie bekomme ich jetzt das veränderliche Sheet dazu, ohne mir beim erneuten Import die Bestandsdaten zu überschreiben?
Gruß EU

Beaker s.a.

Hallo EU,
Gerne hätte ich dir einen Link geschickt, in dem die Lösung deiner
Anforderung sehr gut beschrieben ist. Leider ist dieser z.Zt. "tot".
Eine Verknüpfung zu dem/den Ecxel-Sheet(s) ist schon der richtige Ansatz.
Du hast dann eine Tabelle, die du als Quelle für eine Anfügeabfrage
an deine Accesstabelle verwenden kannst.
Wen ich es recht verstehe wird das Excel-Sheet 2024 auch nur ergänzt,
will sagen, dass da auch bereits importierte DS drin stehen.
Um einen doppelten Import zu vermeiden gibt es (nach meinen bescheidenen
Kenntnissen) zwei Wege.
1. Wenn es bereits im Sheet eine Spalte mit einem eindeutigen Wert gibt, ist
es am Leichtesten. Du nimmst dieses Feld mit in die Zieltabelle auf, und
belegst es dort mit einem eindeutigen Index. Ansonsten schaust ob du in
der Zieltabelle einen eindeutigen Index auf ein, oder auch mehrere Felder,
setzen kannst. In beiden Fällen werden doppelte DS autom. beim Anfügen abgelehnt.
N.M.n die einfachste Lösung.
2. Du suchst in der Quelle nach einem Kriterium, dass "alte" DS von "neuen"
unterscheidet. Ein Datum könnte dafür geeignet sein. Damit filterst du beim
Anfügen die Quelle
... WHERE Quelle.Datum > Max(Ziel.Datum) ...gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

ErreUno

Hallo Beaker s.a.,
vielen Dank für Deine Ausführungen. Du hast den Nagel auf den Kopfgetroffen.
"Wen ich es recht verstehe wird das Excel-Sheet 2024 auch nur ergänzt,
will sagen, dass da auch bereits importierte DS drin stehen."

Genau so ist es.
"Wenn es bereits im Sheet eine Spalte mit einem eindeutigen Wert gibt, ist
es am Leichtesten. Du nimmst dieses Feld mit in die Zieltabelle auf, und
belegst es dort mit einem eindeutigen Index."

Den gibt es leider nicht.
Die Sheets enthalten Zeiterfassungsdaten von Mitarbeitenden. Folglich gibt es zwar ein Datum, das gibt es aber je MA und das auch noch ggf. mehrfach pro Tag.
Gruß EU

PhilS

Zitat von: ErreUno am August 21, 2024, 12:53:35Die Sheets enthalten Zeiterfassungsdaten von Mitarbeitenden. Folglich gibt es zwar ein Datum, das gibt es aber je MA und das auch noch ggf. mehrfach pro Tag.
Du kannst auch einen eindeutigen Index über mehrere Spalten erstellen. In diesem Fall über Datum, MA und Anfangszeit. - Letztere hast du nicht erwähnt, aber etwas ähnliches sollte es bei Zeiterfassungsdaten geben.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

PhilS

Ich würde alle alten Excel-Sheets direkt importieren, wie du es bereits gemacht hast.
Das aktuelle 2024-Sheet würde ich verknüpfen und dann eine Anfügeabfrage erstellen, die aus dem verknüpften Excel-Sheet anhand der eindeutigen Merkmale (Datum, MA, Anfangszeit) nur die Datensätze in die Tabelle anfügt, die noch nicht drin stehen.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor