Warum noch ein Access-Buch?
Für wen ist das Buch?
Jetzt bestellen
+ direkter Download des eBooks!
Nur EUR 59,95!
Fehler gefunden?
Bitte melden!
Wünsche an das Buch?
Her damit!
Was denken die Leser über dieses Buch?
Lesen Sie aktuelle Rezensionen!
Kapitel des noch nicht veröffentlichten Buchs zum Downloaden, Probelesen und Kommentieren
Beispieldatenbanken
Zusätzliches Material

Das Buch im HTML-Format

Für unbestimmte Zeit bieten Addison-Wesley und André Minhorst den kompletten Inhalt des Buchs als Download an. Schauen Sie rein und informieren Sie sich über den Inhalt! Und wenn Ihnen das Buch nützlich erscheint und Sie glauben, dass Sie etwas gelernt haben oder durch das Gelesene sogar etwas Zeit und somit Geld bei Ihrer Arbeit einsparen konnten, können Sie sich ja beim Autor und beim Verlag revanchieren - beispielsweise durch den Kauf dieses Buchs.

Am schönsten wäre es natürlich, wenn Sie das Buch direkt hier bestellen - Sie erhalten das Buch dann direkt vom Verlag, und der Autor und Verlag haben dann noch mehr davon, als wenn Sie es anderswo kaufen.

Danke für Ihr Interesse!

9.2.1 Zugriff auf die Elemente des Objektmodells

9.2.2 Deklarieren und Instanzieren

Theoretisch kann man auf Objekte des DAO-Objektmodells zugreifen, ohne überhaupt eine Variable zu verwenden. Die folgende Anweisung gibt etwa die Anzahl Datensätze einer Tabelle aus, wenn sie im Direktfenster abgesetzt wird (in einer Zeile):

Debug.Print DBEngine.Workspaces(0).Databases(0). TableDefs("tblMitarbeiter").RecordCount

In VBA-Routinen ist dies auch möglich, aber es ist kein guter Programmierstil und außerdem leidet unter Umständen die Performance darunter - nämlich dann, wenn Sie mehr als einmal auf ein Objekt zugreifen möchten. Dann macht es Sinn, eine Objektvariable anzulegen und mit dieser auf das gewünschte Objekt zu verweisen.

Die Routine aus Listing 9.1 deklariert zunächst die gewünschten Objekte und weist diese anschließend den Objektvariablen zu - dabei arbeitet sie sich in der Objekthierarchie von oben nach unten durch.

Während die Objekte Workspace, Database und Recordset explizit zugewiesen werden, erfolgt der Zugriff auf die Field-Elemente des TableDef-Objekts per For Each-Schleife über dessen Fields-Auflistung.

Public Sub Tabelleneigenschaften()

    Dim wrk As DAO.Workspace
    Dim db As DAO.Database
    Dim tdf As DAO.TableDef
    Dim fld As DAO.Field
    Set wrk = DBEngine.Workspaces(0)
    Set db = wrk.Databases(0)
    Set tdf = db.TableDefs("tblMitarbeiter")

    For Each fld In tdf.Fields
        Debug.Print fld.Name
    Next fld

    Set tdf = Nothing
    Set db = Nothing
    Set wrk = Nothing

End Sub

Listing 9.1: Beispiel für das Deklarieren und Instanzieren von Objekten des DAO-Objektmodells

Kürzer - und in vielen Fällen sinnvoller, wie sich weiter unten zeigen wird - ist folgende Variante. Dabei wird die Referenz direkt über die Methode CurrentDB erzeugt. Diese Variante ist die am meisten verbreitete:

Public Sub TabelleneigenschaftenKurz()

    Dim db As DAO.Database
    Dim tdf As DAO.TableDef
    Dim fld As DAO.Field

    Set db = CurrentDb
    Set tdf = db.TableDefs("tblMitarbeiter")

    For Each fld In tdf.Fields
        Debug.Print fld.Name
    Next fld

    Set tdf = Nothing
    Set db = Nothing

End Sub

Listing 9.2: Erstellen einer Objektreferenz auf ein Database-Objekt per CurrentDB

Nächster Abschnitt:

9.2.3 Auf Auflistungen zugreifen

© 2006-2008 André Minhorst Alle Rechte vorbehalten.