Access-Tabelle nach Excel mit VBA importieren (Bilder und Code)
Was ist es?Dieser VBA-Code hilft Ihnen beim Herunterladen oder Importieren Zugriff Tabellendaten oder Abfragen nach Excel mit einem Klick.Warum ist es?Sie können Access-Tabellendaten in Excel importieren, ohne die Access-Datenbank zu öffnen.So importieren Sie Access-Tabellendaten in Excel
Schritt 1: Öffnen Sie die Excel-Arbeitsmappe, rufen Sie den VBA-Code-Builder auf (Alt + F11) und öffnen Sie ein neues Modul.
Sub importAccessdata() cnn als ADODB.Connection dimmen rs als ADODB.Recordset dimmen sQRY als String dimmen strFilePath als String dimmen strFilePath = "C:\DatabaseFolder\myDB.accdb" 'Ersetzen Sie 'DatabaseFolder' und 'myDB.accdb' durch Ihre DB-Pfad und DB-Name Set cnn = New ADODB.Connection Set rs = New ADODB.Recordset cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _ "Data Source=" & strFilePath & ";" sQRY = "SELECT * FROM tblData" 'Ersetzen Sie 'tblData' durch Ihren Access DB-Tabellennamen oder Abfragenamen, von dem Sie die Daten herunterladen möchten. rs.CursorLocation = adUseClient rs.Open sQRY, cnn, adOpenStatic, adLockReadOnly Application.ScreenUpdating = False Sheet1.Range("A1").CopyFromRecordset rs rs.Close Set rs = Nothing cnn.Close Set cnn = Nothing Exit Sub End Sub
Schritt 3: Klicken Sie auf die Schaltfläche „Ausführen“ oder F5 (Sie können auch eine Schaltfläche/Form in die Excel-Tabelle einfügen, dann mit der rechten Maustaste klicken und dieses Makro so zuweisen, dass es jedes Mal ausgeführt wird.)
Access-DB-Datensätze wurden erfolgreich in Excel hochgeladen. Öffnen Sie Ihre Excel-Arbeitsmappe und überprüfen Sie die Daten.
Notiz: Stellen Sie sicher, dass „Microsoft ActiveX Data Objects Library“ in aktiviert ist Werkzeug – Verweise (die Nummer ist die neueste Version [6.1 zum Zeitpunkt dieses Beitrags]).
Stift
Ich bin sicher, Sie arbeiten mit vielen Excel-Daten, MS Access und VBA, also ich Stark Empfehlen Sie dem untenstehenden ultimativen Excel-VBA-Benutzerformular mit Access-Datenbank beizutreten! Es ist eine lohnende Investition in sich selbst! MACH ES JETZT!
Erstellen Sie Ihr eigenes reales Programm, lernen Sie echte Excel-VBA (Makros), überschreiten Sie die Grenzen von Excel mit Complete Project
8 Antworten
Sir, ich möchte Zugriffsdatenbankdatensätze über die Befehlsschaltfläche in vb6.0 nach Excel exportieren. Bitte senden Sie mir den vollständigen vb6.0-Code
Ich habe Tabelle 1 in meinem Excel, erhalte aber im folgenden Schritt den Laufzeitfehler 424 im Makro. Warum ist das so?
Sheet1.Range(“A1”).CopyFromRecordset rs
Hallo, ich wollte prüfen, ob ich meine Access-Datenbank im freigegebenen Laufwerk behalte und dieses Excel-Makro in meiner Organisation verteile. Funktioniert das? Ich möchte, dass mein Excel-Makro einige Werte aus dieser Access-Datenbank liest und dann beim Öffnen von Excel einige Variablen aktualisiert.
Auch wenn Access nicht funktioniert, kann ich ein anderes in der Organisation gespeichertes Excel-Laufwerk verwenden und darauf statt auf die Datenbank zugreifen? Ich habe versucht, mit der Arbeitsmappen-Öffnungsmethode in meinem Makro mein OneDrive-Excel zu lesen, das für alle in meinem Unternehmen freigegeben ist, aber es hat nicht funktioniert.
Kompilierungsfehler in Zeile 5, 8, 9…
Endlich habe ich es geschafft.
Ich verwende 2 Variablen (Textbox1 als Wert „Währung, Format R$0.000,00“ und Textbox2 als „Datum“, Format MM/TT/JJJJ)
Code ↓
'============================================== ===|
'======================================== Kauê Vaz==|
'============================================== ===|
Option explizit
' Klicken Sie auf „Extras“, „Referenzen“ und wählen Sie „Aus“.
' Microsoft ActiveX Data Objects 2.0-Bibliothek
Sub getDataFromAccess(strValue, strDate)
Dimmen Sie DBFullName als String
Dimmen Sie „Verbinden als String“, „Quelle als String“.
Dimmen Sie die Verbindung als ADODB.Connection
Dimmen Sie das Recordset als ADODB.Recordset
Dim Col als Ganzzahl
Dimmen Sie mySQLVariable als String
Dimmen Sie mySQLVariable_1 als String
Dimmen Sie strSQL als String
mySQLVariable = strValue 'Wert aus Textbox1 (Währungsformat R$0.000,00)
mySQLVariable_1 = strDate 'Wert aus Textbox2 (Datumsformat MM/TT/JJJJ)
'SQL-Code
strSQL = „SELECT * FROM tblDatabase WHERE“
strSQL = strSQL & „[Wert] = '“ & (mySQLVariable) & „' und“
strSQL = strSQL & „[Datum] = '“ & (mySQLVariable_1) & „'“
' Datenbank, wählen Sie Ihren Datenbankzugriff aus
DBFullName = „C:\Benutzer\Desktop\Databases\BD_PaynotProcess\bd_PaynotProcess.accdb“
' Verbindung öffnen
Verbindung festlegen = Neue ADODB.Connection
Connect = „Provider=Microsoft.ACE.OLEDB.12.0;“
Connect = Connect & „Data Source=“ & DBFullName & „;“
Connection.Open ConnectionString:=Verbinden
' RecordSet erstellen
Recordset festlegen = Neues ADODB.Recordset
Mit Recordset
' Werte mithilfe der SQL-Codevariablen strSQL suchen
Quelle = strSQL
.Open Source:=Quelle, ActiveConnection:=Verbindung
' Spalten aus der Datenbank importieren.
Für Col = 0 bis Recordset.Fields.Count – 1
Range(“A5”).Offset(0, Col).Value = Recordset.Fields(Col).Name
Nächste
' Importieren von Zeilen aus der Datenbank.
Range(“A5”).Offset(1, 0).CopyFromRecordset Recordset
Ende mit
Recordset = Nichts festlegen
Verbindung.Schließen
Verbindung = festlegen
ActiveSheet.Columns.AutoFit
End Sub
Grüße
Kann ich nur einige Daten importieren? Nach 2 Variablen filtern?
Beispiel:
X = 13/03
Y = '122315124'
Aus dem Access-BD nur die Zeilen bringen, die diese Variablen enthalten?
Hat bei mir funktioniert. Vielen Dank!
Das ist die beste Abfrage, die ich je gesehen habe. Könnten Sie bitte beim Hinzufügen einer Where-Klausel in der SQL-Anweisung helfen? Ich habe versucht, Ihre Abfrage zu ändern, aber es wird ein Fehler ausgegeben.