BEISPIEL
BEISPIEL
BEISPIEL
HINWEIS
Kapitel 5: Programmieren mit Objekten
Andernfalls sollten Sie die Objektvariable besser mit ihrem spezifischen Typ deklarieren (Early Binding).
Welche Typzuweisungen möglich sind, erkennen Sie auch in der obigen Abbildung.
Drei gleichwertige Deklarationen für eine
TextBox
-Objektvariable:
Dim Text1 As Object ' Late Binding
Dim Text1 As Control
Dim Text1 As TextBox ' Early Binding
Die Verwendung spezifischer Objekttypen macht den Code lesbarer, ermöglicht automatische Typüber-
prüfungen und ergibt außerdem einen (geringen) Geschwindigkeitsvorteil.
Zu den spezifischen Objekttypen gehören neben den in diesem Kapitel behandelten Microsoft Access-
Objekten auch Datenzugriffsobjekte (ADOs, DAOs), benutzerdefinierte Objekte und OLE-Automati-
sierungsobjekte.
Definition von Objekten:
Dim tblRechnungen As TableDef ' TableDef-Objekt
Dim exOLE As Excel.Application ' OLE-Automatisierungsobjekt
Wie jede andere Variable können Sie auch eine Objektvariable mit Dim, Public, Private oder Static dekla-
rieren (siehe Kapitel 2). Eine Objektvariable muss den Typ Variant, Object oder einen spezifischen Objekt-
typ wie z.B. Form, Control, ListBox etc. haben.
Die folgenden Deklarationen sind zulässig:
Dim ObjektA ' ObjektA als Variant-Datentyp deklarieren
Dim ObjektA As Object ' ObjektA als Object-Datentyp deklarieren
Variablen ohne Typangabe erhalten standardmäßig den Datentyp Variant.
Form- und Report-Objekt
Die zu beiden Objekttypen zugehörigen Codemodule sind so genannte Klassenmodule, von denen sich zur
Laufzeit mit der New-Anweisung Instanzen ableiten lassen. Näheres dazu folgt im Abschnitt »Formular-
und Berichtsmodule« (Seite 245).
Objektvariable der Typen Form und Report müssen natürlich über die gleichen Eigenschaften, Methoden
und Ereignisse verfügen, wie sie für Formulare und Berichte bereits in den Kapiteln 3 und 4 dargestellt
wurden.
240
BEISPIEL
BEISPIEL
Funktionen CreateForm/CreateReport
Diese beiden Funktionen erstellen ein Formular bzw. einen Bericht in der Entwurfsansicht und geben ein
Form- bzw. ein Report-Objekt zurück. Sie eignen sich deshalb besonders für das Programmieren von
Formular- und Berichtsassistenten.
Den Funktionen können zwei optionale Parameter übergeben werden:
CreateForm([Datenbank[, Formularvorlage]])
bzw.
CreateReport([Datenbank[, Berichtsvorlage]])
Die Bedeutung der Argumente wird nachfolgend beschrieben:
Datenbank: Stringausdruck mit dem Namen der Datenbank, in der die Formular- oder Berichtsvor-
lage enthalten ist. Ohne dieses Argument wird die aktuelle Datenbank (der von der
Funktion CurrentDb zurückgegebene Wert) verwendet.
Formularvorlage,
Berichtsvorlage:
Stringausdruck mit dem Namen des Formulars oder des Berichts, das bzw. der als Vor-
lage zum Erstellen eines neuen Formulars/Berichts verwendet werden soll. Für die Stan-
dardvorlage setzen Sie dieses Argument auf Normal.
Die Befehlsfolge:
Dim rpt As Report
Set rpt = CreateReport
DoCmd.Restore
erstellt einen neuen
Bericht in der Entwurfsansicht.
Die folgende Sequenz erstellt ein Formular für die Datenbank
FIRMA.MDB
, welches auf einem Formular
namens
KUNDEN
basiert, und stellt dessen
Datenherkunft
auf die Tabelle
KUNDEN
ein.
Dim frm as Form
Set frm = CreateForm("FIRMA.MDB", "KUNDEN")
DoCmd.Restore
frm.RecordSource = "KUNDEN"
Me-Objekt
Für jedes Formular bzw. jeden Bericht ist eine Objektvariable Me vordefiniert, die auf die aktuelle Instanz
von Form/Report verweist. Me eignet sich insbesondere zur Übergabe von Informationen über die aktuelle
Instanz eines Objekts an eine Prozedur in einem anderen Modul.
241
Objektvariablen

Get Microsoft Office Access 2007-Programmierung - Das Handbuch now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.