AW: Access Datei öffnen
24.05.2006 14:42:37
Peter
Hallo Andre,
hier ein Beispiel, wie du aus Acces lesen kannst:
Sub DBZugriff_Kerstin()
Dim cn As Connection
Dim rs As Recordset
Dim SQLString As String
Dim xx As Worksheet ' das Ziel-Tabellenblatt in Excel
Dim i As Integer
Dim j As Integer
'Const DBPfad = "J:\Projects\Vertrieb\EBY-S-IT-Projekt\Datenbank\Archiv Datenbank.mdb"
Const DBPfad = "C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\Access-DBs\Archiv Datenbank.mdb"
Set xx = Worksheets("Tabelle2") ' das Ziel-Tabellenblatt in Excel
' Die datenbank öffnen
Set cn = New ADODB.Connection
With cn
.Provider = "Microsoft.Jet.OLEDB.4.0" 'für Access 2000 und höher
.ConnectionString = "Data Source=" & DBPfad
.Open
End With
' Definieren was geholt werden soll - hier alles
'SQLString = "SELECT Tabelle1.* FROM Tabelle1"
' hier nur die PstLZ die mit 2 beginnen aus der Access-Tabelle
SQLString = "SELECT Tabelle1.* FROM Tabelle1 WHERE Tabelle1.PSTLZ_Straße LIKE ""3%"""
Set rs = New ADODB.Recordset
rs.Open SQLString, cn, adOpenDynamic, adLockReadOnly
' Die Feldnamen der Datenbanktabelle in die erste Zeile der Exceltabelle
' hier in die "Tabelle2" schreiben
For j = 0 To rs.Fields.Count - 1
xx.Cells(1, j + 1) = rs.Fields.Item(j).Name
Next
' Jetzt alle Sätze holen und in die Exceltabelle schreiben
i = 1
rs.MoveFirst
Do While rs.EOF = False
i = i + 1
For j = 0 To rs.Fields.Count - 1
If IsNull(rs.Fields.Item(j).Value) = False Then
xx.Cells(i, j + 1) = rs.Fields.Item(j).Value
End If
Next
rs.MoveNext
Loop
rs.Close
cn.Close
End Sub
Viele Grüße Peter
Eine kurze Nachricht, ob es läuft, wäre nett - danke.