Excel Tabelle in Access Datenbank
Liebe Gemeinde,
ich muss aus einer Excel Tabelle Daten in einen Access Table importieren, nun möchte ich die Excel mit Access verlinken, dabei entsteht aber folgendes Problem:
Die Excel wird täglich neu generiert(SAP), darum hätte ich gerne dass die Datenbank immer die aktuelle Excel Datei verwendet.
Ist es irgendwie möglich, dass Access immer die Datei mit dem aktuellen Datum im Dateinamen verwendet? zb. "Abfrage tt.mm.jjjj.xlsx"
Danke für eure Hilfe!!
ich muss aus einer Excel Tabelle Daten in einen Access Table importieren, nun möchte ich die Excel mit Access verlinken, dabei entsteht aber folgendes Problem:
Die Excel wird täglich neu generiert(SAP), darum hätte ich gerne dass die Datenbank immer die aktuelle Excel Datei verwendet.
Ist es irgendwie möglich, dass Access immer die Datei mit dem aktuellen Datum im Dateinamen verwendet? zb. "Abfrage tt.mm.jjjj.xlsx"
Danke für eure Hilfe!!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 300322
Url: https://administrator.de/forum/excel-tabelle-in-access-datenbank-300322.html
Ausgedruckt am: 20.04.2025 um 21:04 Uhr
9 Kommentare
Neuester Kommentar
Hallo Dr.Cornwallis,
mit ein bisschen VBA importierst du dir die aktuelle Excel-Tabelle des Tages in eine Tabelle in deiner Datenbank. Das Makro kannst du dann bspw. beim Öffnen einmalig ausführen lassen.
Anzupassen sind Pfad zum Ordner in dem die Excel-Dateien liegen und den Namen der Tabelle in welchem immer die aktuellen Daten hineingeschrieben werden.
Die Tabelle von welcher der Namen angegeben werden muss wird, solange sie nicht vorhanden ist, von selbst erzeugt. Ist sie bereits vorhanden werden die eventuell vorhandenen Daten in der Tabelle gelöscht und dann die Daten aus der Excel-Tabelle importiert. Im jetztigen Zustand haben die Daten in den Excel-Tabellen in der ersten Zeile Überschriften (Wenn nicht, kann das in Zeile 25 durch ändern des letzten Parameters auf False geändert werden.
Viele Grüße und Erfolg der Umsetzung deines Vorhabens
Grüße Uwe
mit ein bisschen VBA importierst du dir die aktuelle Excel-Tabelle des Tages in eine Tabelle in deiner Datenbank. Das Makro kannst du dann bspw. beim Öffnen einmalig ausführen lassen.
Anzupassen sind Pfad zum Ordner in dem die Excel-Dateien liegen und den Namen der Tabelle in welchem immer die aktuellen Daten hineingeschrieben werden.
Die Tabelle von welcher der Namen angegeben werden muss wird, solange sie nicht vorhanden ist, von selbst erzeugt. Ist sie bereits vorhanden werden die eventuell vorhandenen Daten in der Tabelle gelöscht und dann die Daten aus der Excel-Tabelle importiert. Im jetztigen Zustand haben die Daten in den Excel-Tabellen in der ersten Zeile Überschriften (Wenn nicht, kann das in Zeile 25 durch ändern des letzten Parameters auf False geändert werden.
Sub ImportCurrentExcelData()
' Konstanten definieren
'Pfad in dem die Excel-Dateien liegen
Const PATH = "C:\Daten\SAP"
'Name der Tabelle in das die Daten importiert werden (vorhandene Daten werden vorher gelöscht)
Const TABLENAME = "MyExcelData"
'Variablen und Objekte initialisieren
Dim strCurrentSheet As String, def As TableDef
Set fso = CreateObject("Scripting.FileSystemObject")
'Warnungen abschalten
DoCmd.SetWarnings False
' Pfad für aktuelle Excel-Datei zusammensetzen (Dateinameformat DD.MM.YYYY.xlsx)
strCurrentSheet = PATH & "\" & Format(Date, "dd.mm.yyyy") & ".xlsx"
'Wenn Datei exisitiert ...
If fso.FileExists(strCurrentSheet) Then
'Prüfe ob Tabelle vorhanden ist, wenn ja lösche den Inhalt
For Each def In CurrentDb.TableDefs
If LCase(def.Name) = LCase(TABLENAME) Then
DoCmd.RunSQL "DELETE FROM " & TABLENAME
Exit For
End If
Next
' Starte dem Import der Daten (in diesem Fall haben die Spalten in der ersten Zeile Überschriften)
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12, TABLENAME, strCurrentSheet, True
Else
' Ein Sheet mit aktuellem Datum existiert nicht
MsgBox "Ein Sheet mit dem aktuellen Datum existiert nicht", vbCritical
End If
'Warnunen wieder einschalten
DoCmd.SetWarnings True
End Sub
Grüße Uwe
Zitat von @Dr.Cornwallis:
ich möchte nicht die Excel vom aktuellen Datum, sondern die Excel von letzer Woche, kann ich da irgendwie diesen Parameter setzen?
zb. dd.mm.jjjj -7?
Kein Problem, um mit dem Datum zu rechnen gibt es die Funktion DateAddich möchte nicht die Excel vom aktuellen Datum, sondern die Excel von letzer Woche, kann ich da irgendwie diesen Parameter setzen?
zb. dd.mm.jjjj -7?
Für den obigen Code änderst du dann die obige Zeile so ab:
strCurrentSheet = PATH & "\" & Format(DateAdd("d",-7,Date), "dd.mm.yyyy") & ".xlsx"
Moin, Dr.Cornwallis,
wieviel Sekunden hätte es denn gedauert,
- in der Zeile 14 mal das
- mal zu versuchen, eine For-Next ode Do While-Konstruktion über alle Datumsvariationen von Date-1 bis Date-7 zu basteln?
Grüße
Biber
wieviel Sekunden hätte es denn gedauert,
- in der Zeile 14 mal das
Format(Date, "dd.mm.yyyy")
in ein Format(Date-7, "dd.mm.yyyy")
zu ändern und selbst zu testen?- mal zu versuchen, eine For-Next ode Do While-Konstruktion über alle Datumsvariationen von Date-1 bis Date-7 zu basteln?
Grüße
Biber