Kapitel 5: Programmieren mit Objekten
Test 2 (Controls-Auflistung)
Wozu haben wir überhaupt erst umständlich eine Collection erstellt, obwohl standardmäßig bereits eine
Controls-Auflistung vorhanden ist? Die Antwort können Sie sich selbst geben, wenn Sie das Ergebnis des
folgenden Tests auswerten:
Nach dem Öffnen des Formulars und einem Klick auf die linke Befehlsschaltfläche färben sich die acht
Steuerelemente blau. Achten Sie aber auf den angezeigten Index. Er erscheint willkürlich festgelegt und
nicht durchgängig. Die angezeigten Indizes entsprechen der Reihenfolge, in welcher im Entwurfsmodus die
Steuerelemente im Detailbereich »abgesetzt« wurden. Beachten Sie dabei, dass auch die vier Befehlsschalt-
flächen Objekte innerhalb der Controls-Auflistung sind, ihr Index aber nicht angezeigt wird.
Bemerkungen
Eine Collection bietet sich immer dann an, wenn Sie auf einzelne Objekte zugreifen wollen (Sie selbst
legen den Index fest!).
Einer Controls-Auflistung sollte man dann den Vorzug geben, wenn auf alle Objekte ohne Unterschied
zugegriffen werden soll (VBA legt den Index fest!).
Properties-Auflistungen untersuchen
Properties-Auflistung; Property-Objekttyp; For... Each-Schleife; Count-Eigenschaft; Debug-Objekt
In Visual Basic werden auch die Eigenschaften von Oberflächen-Objekten in Auflistungen zusammenge-
fasst. Ein kleines Experimentierprogramm ist auch hier die ideale Möglichkeit, sich im Dschungel der
Objekthierarchie zurechtzufinden. Wir wollen den Inhalt der Properties-Auflistungen sowohl für das aktu-
elle Formular als auch für eine Befehlsschaltfläche anzeigen.
Oberfläche
Obwohl wir unsere Testergebnisse im Direktfenster ausgeben wollen, brauchen wir zunächst ein Start-
formular. Öffnen Sie also ein neues Formular in der Entwurfsansicht und bestücken Sie es mit drei Schalt-
flächen (Befehl0, Befehl1, Befehl2).
Quelltext
Bei der
Properties
-Auflistung (Auflistung der Eigenschaften) für das Formular wählen wir die einfachste Pro-
grammiermethode in Form einer
For...Next
-Schleife:
Private i As Integer
Private Sub Befehl0_Click() ' Formulareigenschaften
On Error Resume Next
Zunächst die Kopfzeile drucken:
Debug.Print "Eigenschaften des Formulars '" & Me.name & "'"
Debug.Print "------------------------------------------------"
Debug.Print "Index"; Tab(7); "Name"; Tab(34); "Typ"; Tab(42); "Wert"
Debug.Print "------------------------------------------------"
288
HINWEIS
Für die ersten 31 Formulareigenschaften werden Name, Typ und Wert ausgegeben:
For i = 0 To Me.Properties.Count – 1
With Me.Properties(i)
Debug.Print i; Tab(7); .name; Tab(34); .Type; Tab(42); .Value
End With
If i = 30 Then Exit For
Next i
End Sub
Nun wenden wir uns den Eigenschaften der Befehlsschaltfläche zu. Nur um verschiedene Möglichkeiten zu
demonstrieren, wird hier bei der
Properties
-Auflistung von der
For Each...
-Schleifenanweisung Gebrauch ge-
macht. Gleichzeitig soll anhand der
Caption
-Eigenschaft gezeigt werden, wie man bestimmte »Properties«
abfragen und manipulieren kann:
Private Sub Befehl1_Click() ' Eigenschaften der "Beenden"-Schaltfläche
Dim prop As Property
On Error Resume Next
i = 0
Debug.Print "Eigenschaften von '" & Me.Befehl2.name & "'"
Debug.Print "--------------------------------------------------------"
Debug.Print "Index"; Tab(7); "Name"; Tab(34); "Typ"; Tab(42); "Wert"
Debug.Print "--------------------------------------------------------"
For Each prop In Me.Befehl2.Properties
If prop.Name = "Caption" Then prop.Value = "Schließen" ' Eigenschaftswert wird verändert!
Debug.Print i; Tab(7); prop.Name; Tab(34); prop.Type; Tab(42); prop.Value
i = i + 1
Next prop
End Sub
Test
Bevor Sie das Formular öffnen, sollten Sie im Menü Ansicht/Direktfenster das Debug-Objekt zur Anzeige
bringen. Das gelingt auch mit der Tastenkombination
Strg
+
G
. In der Folge bleibt das Testfenster immer
sichtbar, und Sie können quasi »Online« den Zeilenaufbau mitverfolgen (Abbildung 5.21).
Anschließend können Sie noch die Auflistung für die Eigenschaften der Befehlsschaltfläche (Befehl2) durch-
laufen lassen und sich ebenfalls im Direktfenster das Ergebnis betrachten (Abbildung 5.22).
Achten Sie auf die veränderte Caption-Eigenschaft von Befehl2 (im Direktfenster und im Formular steht jetzt
»Schließen« anstatt »Beenden«)!
Bemerkungen
Die Kapazität des Direktfensters ist nicht unerschöpflich. Ab und zu sollten Sie deshalb den Inhalt
löschen. Das gelingt am einfachsten, wenn Sie alles mit der Maus markieren und anschließend die
Entf
-
Taste betätigen.
Über die Bedeutung der Properties-Auflistung im Zusammenhang mit den Objekten der Jet-Engine in-
formieren Sie sich bitte im DAO- Kapitel 6.
289
Praxisbeispiele
Kapitel 5: Programmieren mit Objekten
Abbildung 5.21 Die ersten 31 Eigenschaften
des Formulars
Abbildung 5.22 Die ersten 17 Eigenschaften
der Schaltfläche Befehl2
290

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.