In meiner täglichen Arbeit mit VBA (Visual Basic for Applications), speziell bei der Entwicklung von Access-Datenbanken, treffe ich regelmäßig auf die Notwendigkeit, Datensätze zu durchlaufen und zu manipulieren. Hierfür stehen zwei gängige Methoden zur Verfügung: Data Access Objects (DAO) und ActiveX Data Objects (ADO). Beide haben ihre spezifischen Anwendungsbereiche und Vorteile.

1. Data Access Objects (DAO)

DAO ist das traditionelle Modell für den Zugriff auf Daten in Access und eignet sich hervorragend für Desktop-Datenbankanwendungen. Es ermöglicht eine enge Integration mit den Access-spezifischen Features.

Code-Beispiel für DAO

Kurze Beschreibung

Dim db As DAO.Database
Dim rs As DAO.Recordset
' Datenbank und Recordset öffnen
Set db = CurrentDb
Set rs = db.OpenRecordset("Select * from Haupttabelle", dbOpenSnapshot)
' Prüfen, ob das Recordset leer ist
If rs.EOF Then Exit Sub
' Durch das Recordset iterieren
With rs
Do Until .EOF
.Edit ' Für Bearbeitungen
![Feldname] = "Neuer Wert" ' Änderung eines Feldes
.Update ' Änderungen speichern
.MoveNext ' Zum nächsten Datensatz bewegen
Loop
End With
' Ressourcen freigeben
rs.Close
db.Close
Set rs = Nothing
Set db = Nothing

Dieser Code durchläuft ein Recordset, das alle Datensätze der Tabelle “Haupttabelle” enthält. Es ermöglicht das Lesen und Bearbeiten von Daten in einer Tabelle.

2. ActiveX Data Objects (ADO)

ADO ist ein neueres Modell und bietet eine breitere Palette an Möglichkeiten für den Datenzugriff, einschließlich der Verbindung mit verschiedenen Datenquellen über OLE DB. Es ist flexibler und wird oft in Umgebungen eingesetzt, die über Access hinausgehen.

Code-Beispiel für ADO

Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
' Verbindung und Recordset initialisieren
Set cn = New ADODB.Connection
cn.Open "IhrVerbindungsString"
Set rs = New ADODB.Recordset
rs.Open "SELECT * FROM Haupttabelle", cn, adOpenStatic, adLockOptimistic
' Durch das Recordset iterieren
Do Until rs.EOF
' Hier können Sie mit den Daten arbeiten
rs.Fields("Feldname").Value = "Neuer Wert"
rs.Update
rs.MoveNext
Loop
' Ressourcen freigeben
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing

Kurze Beschreibung

Dieser ADO-Code verbindet sich mit einer Datenbank und öffnet ein Recordset der “Haupttabelle”. Es erlaubt das Durchlaufen und die Bearbeitung von Datensätzen ähnlich wie DAO, ist aber flexibler in Bezug auf die Datenquellen.

Fazit

Während DAO speziell für Access entwickelt wurde und eng mit dessen Funktionalitäten verknüpft ist, bietet ADO eine breitere Kompatibilität und Flexibilität, insbesondere bei der Arbeit mit verschiedenen Datenquellen oder außerhalb von Access. Die Wahl zwischen DAO und ADO hängt letztendlich von den spezifischen Anforderungen Ihres Projekts ab.