Excel to Access
Abfragen der Daten in einer Access Datenbank aus Excel.
Schritte
- Definieren der Objekte
- Verbinden zur Datenbank
- Abfrage definieren
- Abfrage ausführen
- Ergebnis anzeigen
- Bereinigen der Objekte
Beispiel
Const DBProvider As String = "Microsoft.ACE.OLEDB.12.0" Const DBFileName As String = "C:\Users\Ich\Documents\Datenbanken\Mydatabase.accdb" Public Sub CountRecords() ' Definieren der Objekte Dim cn As Object Dim rs As Object Dim strSql As String Dim strConnection As String ' Verbinden zur Datenbank Set cn = CreateObject("ADODB.Connection") strConnection = "Provider=" & DBProvider & "; Data Source=" & DBFileName & ";" ' Abfrage definieren strSql = "SELECT Count(*) FROM MyTable;" ' Abfrage ausführen cn.Open strConnection Set rs = cn.Execute(strSql) ' Ergebnis anzeigen MsgBox rs.Fields(0) & " rows in MyTable" ' Bereinigen der Objekte rs.Close Set rs = Nothing cn.Close Set cn = Nothing End Sub
Kopieren einer Abfrage mit Parametern
Das folgende Beispiel setzt eine Datenbank Spielwiese.accdb mit Personaldaten mindesten drei Feldern Name, Vorname, GebDat voraus.
Es wird das Geburtsjahr abgefragt und das Abfrageergebnis ab der aktiven Zelle eingefügt.
Const SpwDBProvider As String = "Microsoft.ACE.OLEDB.12.0" Const SpwDBPath As String = "C:\Users\thomas1arend\Documents\Datenbanken\" Const SpwDBFile As String = "Spielwiese.accdb" Public Sub InsertQuery() ' Step 1: Declare your variables ' Definieren der Objekte Dim cn As Object Dim rs As Object Dim strSql As String Dim strConnection As String Dim Jahr As Integer Jahr = Application.InputBox("Bitte ein Jahr eingeben", 1) ' Verbinden zur Datenbank Set cn = CreateObject("ADODB.Connection") strConnection = "Provider=" & SpwDBProvider & "; Data Source=" & SpwDBPath & SpwDBFile & ";" ' Abfrage definieren strSql = "SELECT Personen.GebDat, Personen.Name, Personen.Vorname FROM Personen WHERE (((Year([GebDat])) = " _ & Str(Jahr) _ & " )) ORDER BY Personen.GebDat, Personen.Name, Personen.Vorname;" ' Abfrage ausführen cn.Open strConnection Set rs = cn.Execute(strSql) ' Copy the recordset to Excel Selection.CopyFromRecordset rs MsgBox "Your Query has been Run" End Sub
27.03.2000 | Kammer | Wolfgang |
28.04.2000 | Dietze | Cristine |
18.05.2000 | Lauterbach | Sigismondo |
21.05.2000 | Hafner | Hilda |
08.07.2000 | Kayser | Heindrick |
21.07.2000 | Bauer | Jeremiah |
08.08.2000 | Höppner | Murial |
02.09.2000 | Baumgarten | Joann |
12.09.2000 | Keller | Sanderson |
23.11.2000 | Blome | Bellina |
26.12.2000 | Bauer | Mayne |