Datenzugriff mit DAO oder ADO

    • Offizieller Beitrag

    Es gibt 2 Möglichkeiten in MS-Access über VBA auf die Datentabellen zuzugreifen.

    Die alte Methode DAO (Data Access Objects) oder die neue Methode ADO (ActiveX Data Objects).

    ADO bietet dabei den Vorteil, dass dies ein Standardschnittstelle ist, mit welcher man auf beliebige Datenquellen zugreifen kann. Somit auch auf Access. DAO nutzt Access teilweise um eingene Zugriffe zu tätigen.

    Für beide Varianten sind die entsprechenden Librarys über Extras | Verweise einzubinden. Wobei die DAO-Library standardmäßig immer in Access eingebunden ist.

    • Für DAO ist die "Microsoft DAO 3.6 Object Library" bzw. "Microsoft Access 16.0 Object Library" zuständig. Bei Office 2016 32bit ist dies die Datei "C:\Program Files (x86)\Microsoft Office\Office16\MSACC.OLB".
    • Für ADO ist dies die "Microsoft ActiveX Data Objects 61. Library". Bei Office 2016 32bit ist dies die Datei "C:\Program Files (x86)\Common Files\system\ado\msado15.dll"
    • Offizieller Beitrag

    ADO Datenverbindung

    Syntax: ADORecordSet.Open [Quelle], [Datenbankverbindung], [CursorTypeEnum], [LockTypeEnum], [CommandTypeEnum]


    CursorTypeEnum
    Gibt den Datensatz-Cursors (Datensatzzeiger) an und bestimmt wie flxiebel durch die Datensätze navigiert werden kann.

    KonsanteFunktion
    adOpenForwardOnlySchnellster Cursor. Änderungen Zeilenweise möglich. Bewegung nur vorwärts möglich.
    adOpenStaticKopie der Daten die nicht geändert werden können. Bewegung in alle Richtungen möglich.
    adOpenKeysetJeder Datensatz wird einzeln durchgegangen. Schneller als Static- Dynamic-Cursor. Änderungen und löschen möglich. Bewegung in alle Richtungen möglich.
    adOpenDynamicFlexibelster Cursor und verbraucht die meisten Ressourcen. Lesen und bearbeiten möglich. Bewegung in alle Richtungen möglich.


    LockTypeEnum

    Gibt die Datensatzsicherheit und die Änderungsberechtigungen an

    KonsanteFunktion
    adLockReadOnlyNur Lesen
    adLockPessimisticDaten werden beim Öffnen des Recordsets für andere User gesperrt
    adLockOptimisticDaten werden erst beim Update gesperrt
    adLockBatchOptimisticFür Stapelaktuallisierung

    CommandTypeEnum

    Legt fest was ausgeführt werden soll.

    KonstanteFunktion
    adCmdTextAls Quelle wird ein Text übergeben (z.B. SQL-Statement oder eine StoredProcedure (mit Parameter))
    adCmdTableAls Quelle wird ein Tabellenname übergeben. Spiegelt die Tabelle 1:1 wieder. Im Hintergrund wird ein SQL-Statement erstellt
    adCmdTableDirectAls Quelle wird ein Tabellenname übergeben. Spiegelt die Tabelle 1:1 wieder. Im Hintergrund wird kein ein SQL-Statement erstellt
    adCmdStoredProcAls Quelle wird eine StoredProcedure übergeben
    adCmdUnknownDefault. Keine Vorgabe
    adCmdFileAls Quelle wird eine lokale Datei verwendet
    adExecuteNoRecordsEs werden keine Daten zurückgeliefert. Wird z.B. bei StoredProcedures ohne Rückgabe verwendet. Kombination mit adCmdText oder adCmdStoredProc möglich
    • Offizieller Beitrag

    DAO Datenverbindung

    • Offizieller Beitrag

    DAO Tabelle anlegen