1 1 1 1 1 1 1 1 1 1 Rating 5.00 (1 Vote)

Vergleich von Standardprozeduren ADO/DAO 

Für 32Bit und 64Bit Office Versionen

Wichtig sind die jeweiligen Verweise:
DAO:
MS DAO Object Library 3.X
ADO:
MS ActiveX Data Objects 2.X Library

 

Problemstellung:

Wie kann ich mit DAO/ADO ein Recordset öffnen?

1. Recordset aus der aktuellen Datenbank

DAO:

Public Sub DAO_OpenCurrentRecordset(sSource As String)
    Dim db As DAO.Database
    Dim rst As DAO.Recordset    

    Set db = CurrentDb()
    Set rst = db.OpenRecordset(sSource)
    rst.Close
 End Sub

ADO:

Sub ADO_OpenCurrentRecordset(sSource As String)
    Dim cnn As New ADODB.Connection
    Dim rst As New ADODB.Recordset
    Set cnn = CurrentProject.Connection
    rst.Open sSource, cnn, adOpenDynamic, adLockOptimistic
    rst.Close
 End Sub

Wobei der Parameter "sSource" entweder einen Namen einer Tabelle/Abfrage oder einen SQL-String enthalten kann.

2. Recordset aus einer externen Datenbank

DAO:

Public Sub DAO_OpenRecordset(sDBPath, sSource As String)
    Dim db As DAO.Database
    Dim rst As DAO.Recordset
    Set db = DBEngine.OpenDatabase(sDBPath)
    Set rst = db.OpenRecordset(sSource)
    rst.Close
 End Sub

ADO:

Sub ADO_OpenRecordset(sDBPath, sSource As String)
    Dim cnn As New ADODB.Connection
    Dim rst As New ADODB.Recordset
    cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" & sDBPath & "';"
    rst.Open sSource, cnn, adOpenForwardOnly, adLockReadOnly
    rst.Close
 End Sub

Parameter "sDBPath" muss den kompletten Pfad und Dateinamen der DB enthalten.

Parameter "sSource" enthält Namen einer Tabelle/Abfrage oder einen SQL-String enthalten kann.

 

 

Ähnliche Artikel