ADO statt DAO
08.12.2006 11:18:01
Axel
Ich habe Schwierigkeiten bei ODBC-Datenbankabfragen über DAO mit nicht nachvollziehbaren Laufzeitfehlern und möchte es jetzt mit ADO probieren. Leider keine Ahnung davon. Deshalb meine Frage, wie müsste folgende Abfrage bei ADO-Zugriff aussehen?
Danke im voraus.
Gruß Axel.
Sub Import_V_BelegKopf_U()
Dim wks As Workspace
Dim conn As Connection
Dim rec As Recordset
Dim sql As String
Dim x_db As String
sql = "SELECT V_BelegKopf_0.VorgangsNummer, V_BelegKopf_0.BelegNummer, V_BelegKopf_0.BelegArt, V_BelegKopf_0.BelegDatum, " & _
"V_BelegKopf_0.GesamtNetto " & _
"FROM BASIS.V_BelegKopf V_BelegKopf_0 " & _
"WHERE (V_BelegKopf_0.Firma='10') AND (V_BelegKopf_0.BelegArt='U') AND (V_BelegKopf_0.BelegDatum>={d '2006-11-01'}) " & _
"AND (V_BelegKopf_0.BelegDatum<={d '2006-12-31'})"
'*** DAO-ODBCDirect *************************************************************************
Set wks = DBEngine.CreateWorkspace("ODBCWorkspace", "", "", dbUseODBC)
'Über OpenLink
Set conn = wks.OpenConnection("", dbDriverComplete, False, _
"ODBC;DSN=" & x_db & ";")
Set rec = conn.OpenRecordset(sql, dbOpenForwardOnly)
'*** ENDE ODBCDirect ********************************************************************
Sheets("V_BelegKopf_U").[a1].CurrentRegion.Clear
'Der erste Recordset sind die Feldnamen und werden in die erste Zeile des sheets eingelesen
For Each F In rec.Fields
Sheets("V_BelegKopf_U").Cells(1, F.OrdinalPosition + 1).Value = F.Name
Next
On Error Resume Next
Sheets("V_BelegKopf_U").[a2].CopyFromRecordset rec
End Sub