Exportieren von Excel-Daten nach Access mit VBA (Bilder und Code)
Was ist es?
Dieser VBA-Code hilft Ihnen beim Hochladen oder Exportieren Sie Excel-Daten nach Access mit einem Klick.
Warum ist es?
Du kannst Exportieren Sie Excel-Daten nach Access ohne die Access-Datenbank überhaupt zu öffnen.
Wie exportiert man Excel-Daten nach Access?
Schritt 1: Öffnen Sie die Excel und rufen Sie den VBA-Code-Builder auf (Alt + F11) und öffnen Sie ein neues Modul
.
Schritt 2: Kopieren Sie den unten stehenden Code und fügen Sie ihn ein.
Const TARGET_DB = "myDB.accdb" Ersetzen Sie "myDB.accdb" durch den Namen Ihrer Datenbank und stellen Sie sicher, dass Excel und Access DB auf denselben Pfad verweisen.
Sub PushTableToAccess()
Dim cnn As ADODB.Connection
Dim MyConn
Dim rst As ADODB.Recordset
Dim i As Long, j As Long
Dim Rw As Long
Sheets("Sheet Name").Activate Ersetzen Sie den "Blattnamen" durch den Namen Ihres Excel-Blatts
Rw = Range("A65536").End(xlUp).Row
' Geben Sie Ihrem Excel-Blatt Datenbereich
Set cnn = New ADODB.Connection
MyConn = ThisWorkbook.Path & Application.PathSeparator & TARGET_DB
Mit cnn
.Provider = "Microsoft.ACE.OLEDB.12.0"
MyConn öffnen
Ende mit
Ersetzen Sie die "tblMyExcelUpload" durch den Namen Ihrer Tabelle in Access
Set rst = New ADODB.Recordset
rst.CursorLocation = adUseServer
rst.Open Source:="tblMyExcelUpload", ActiveConnection:=cnn, _
CursorType:=adOpenDynamic, LockType:=adLockOptimistic, _
Optionen:=adCmdTable
Alle Datensätze aus Excel in Access laden.
For i = 2 To Rw
rst.AddNew
Für j = 1 bis 7
rst(Cells(1, j).Value) = Cells(i, j).Value
Nächste j
rst.Update
Nächste i
' Schließen Sie die Verbindung
rst.Schließen
cnn.Close
Set rst = Nichts
Set cnn = Nichts
End Sub
Schritt 3Klicken Sie auf die Schaltfläche Ausführen oder F5. (Sie können auch eine Schaltfläche/Form in eine Excel-Tabelle einfügen und dann mit der rechten Maustaste klicken und dieses Makro zuweisen, damit es jedes Mal ausgeführt wird.) Sie sind mit dem Hochladen fertig! Die Excel-Datensätze wurden erfolgreich in Access hochgeladen. Öffnen Sie Ihre Access-DB-Tabelle und überprüfen Sie die Daten.
Notiz: Vergewissern Sie sich, dass die "Microsoft ActiveX Data Objects Library" in der Werkzeug - Verweise (die Nummer ist die neueste Version [6.1 zum Zeitpunkt dieses Beitrags]).
Pin
8 Responses
Hallo an alle;
Müssen diese beiden Pfade übereinstimmen, damit diese ADODBC-Verbindung funktioniert? Das ist der ThisWorkbook.Path und Target_DB.
Befehl von oben:
ThisWorkbook.Path & Application.PathSeparator & TARGET_DB
Oder kann der Workbook.Path lauten
"C:\MyExcelFiles\MyWorkbook.xlsx" & die Access-Datenbank TARGET_DB muss in
"C:\MyDataBases\MyAccessDB.accdb"?
Mein Code funktioniert, wenn sowohl die Excel-Arbeitsmappe als auch die Access-DB im selben Ordner liegen, aber wenn sie sich in verschiedenen Ordnern befinden (richtig organisierte Bibliotheksstruktur), schlägt der Code an der Stelle .Open MyConn fehl.
Vielen Dank an alle,
Mario,
Hallo
Wie lege ich das Passwort dafür fest?
Panzer
rst(Cells(1, j).Value) = Cells(i, j).Value
Codebrüche hier
———-
Fehler 3265
Element kann nicht in der Sammlung gefunden werden, die dem angeforderten Namen oder der Ordnungszahl entspricht
———-
Wie würde der Code aussehen, wenn ich die Tabellenkalkulation und die Datenbank an verschiedenen Orten, d.h. Pfaden, habe?
Hallo,
mein Code läuft bis
Sheets("Blattname").Activate
Ich habe das Blatt ausgewählt, aber es passiert nichts weiter.
Können Sie mir das mitteilen?
Dankeschön
Try Worksheets("IhrBlatt").Activate
Gibt es einen einzigen Befehl zum Hochladen der Daten wie (Range.CopyFromRecordset)?
Hallo Krishnan, ich bin mir nicht sicher, ich werde mich erkundigen und Sie auf dem Laufenden halten.