Excel to Access: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Thomas (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „Abfragen der Daten in einer Access Datenbank aus Excel. Schritte # Definieren der Objekte # Verbinden zur Datenbank # Abfrage definieren # Abfrage ausführen…“) |
Thomas (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
| Zeile 47: | Zeile 47: | ||
End Sub | End Sub | ||
</pre> | </pre> | ||
== 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. | |||
<pre> | |||
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 | |||
</pre> | |||
{| class="wikitable" | |||
|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 | |||
|} | |||
Version vom 12. Juli 2018, 13:54 Uhr
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 |