Konstante Wert aktives Objekt
acDataAccessPage 6 Datenzugriffsseite
acServerView 7Serversicht
acDiagram 8 Datenbankdiagramm
acStoredProcedure 9 Gespeicherte Prozedur
Tabelle 5.12 Rückgabewerte der Funktion CurrentObjectType (Fortsetzung)
Übergabestrings der SetOption-/GetOption-Methode
Text im Dialogfeld Optionen Übergabestring
Statusleiste "Show Status Bar"
Start-Dialogfeld "Show Startup Dialog Box"
Systemobjekte "Show System Objects"
Fenster in Taskleiste "Use Taskbar For Each Document"
Namenspalte "Show Macro Names Column"
Bedingungsspalte "Show Conditions Column"
Linker -, Rechter -, Oberer -, Unterer Rand "Left Margin", "Right Margin", "Top Margin", "Bottom Margin"
Liste zuletzt geöffneter Dateien "Enable MRU File List"
Tabelle 5.13 Die wichtigsten Übergabestrings der SetOption-/GetOption-Methode
Praxisbeispiele
Ein Steuerelemente-Array automatisch erstellen
CreateForm- und CreateControl-Funktion; ControlType-Eigenschaft; Form- und Control-Objekt;
Sie wollen eine Eingabemaske mit einer matrixförmigen Anordnung von Textfeldern entwerfen. Das pixel-
genaue Positionieren jedes einzelnen der vielen Steuerelemente (Controls) ist aber eine nervenaufreibende
Angelegenheit, bei der eine ruhige Hand gefragt ist. Keines der Felder darf verrutschen, um den Gesamtein-
druck nicht zu trüben. Spätestens hier entsteht bei Ihnen der Wunsch nach Automatisierung des Ent-
wurfsprozesses.
Leider verfügen Steuerelemente über keine Index-Eigenschaft, über welche (wie z.B. in Visual Basic 6) pro-
blemlos auf Steuerelemente-Arrays zugegriffen werden könnte. Auch existiert keine Möglichkeit, zur Lauf-
zeit mittels Load-Anweisung ein neues Steuerelement zu generieren.
Die Funktion CreateControl zeigt einen Ausweg, wie Sie sich trotzdem die Arbeit erleichtern können. Aller-
dings lässt sich diese Funktion nur in der Entwurfsansicht des Formulars verwenden.
277
Praxisbeispiele
HINWEIS
Kapitel 5: Programmieren mit Objekten
Oberfläche
Sozusagen als »Startbasis« für unser kleines Demonstrationsprogramm brauchen wir ein neues Formular
mit einer einzigen Befehlsschaltfläche.
Das Startformular ist nicht identisch mit jenem, auf welchem wir später das Control-Array erstellen wollen!
Quellcode
In das Codemodul des Formulars kopieren Sie folgende Prozedur:
Option Explicit
Sub controlArray()
Dim frm As Form
Dim lbl As Control, txt As Control
Dim x0 As Integer, y0 As Integer
Dim breit As Integer, hochT As Integer, hochL As Integer
Dim z As Integer, s As Integer ' Zeilen- bzw. Spaltenindex
Set frm = CreateForm ' neues Formular in Entwurfansicht
frm.Caption = "Steuerelemente-Array"
frm.RecordSelectors = False ' kein Datensatzmarkierer
frm.NavigationButtons = False ' keine Navigationsschaltflächen
x0 = 200: y0 = 500 ' linke obere Ecke
breit = 700 ' Spaltenbreite (Twips)
hochT = 500: hochL = 200 ' Höhe von Text- bzw.
' Bezeichnungsfeldern
For z = 1 To 5 ' für 5 Zeilen
For s = 1 To 10 ' für 10 Spalten
Ein ungebundenes Textfeld im Detailbereich erstellen:
Set txt = CreateControl(frm.name, acTextBox, , "", "", _
x0 + (s - 1) * breit, y0 + (z - 1) * (hochT + hochL))
Eigenschaften für Textfeld festlegen:
txt.Width = breit: txt.Height = hochT
txt.name = "text" & CStr(z) & CStr(s)
Untergeordnetes Bezeichnungsfeld für Textfeld erstellen:
Set lbl = CreateControl(frm.name, acLabel, , txt.name, _
"NewLabel", x0 + (s - 1) * breit, y0 + (z - 1) * (hochT + hochL) - hochL)
Eigenschaften für Bezeichnungsfeld festlegen:
lbl.Height = hochL
lbl.Width = breit
lbl.name = "label" & CStr(z) & CStr(s)
lbl.Caption = CStr(z) & "," & CStr(s)
Next s
Next z
DoCmd.Restore ' Formular in Normalgröße wiederherstellen
End Sub
278
HINWEIS
Beachten Sie, dass die mit Set zugewiesenen Namen txt bzw. lbl nicht identisch mit der Name-Eigenschaft
dieser Steuerelemente sind!
Wenn Sie z.B. zweimal hintereinander eine völlig identische Set-Anweisung ausführen, wird die alte Instanz
nicht überschrieben, sondern es kommt eine neue hinzu, deren Name zunächst von Microsoft Access auto-
matisch vergeben wird (beginnend mit Text0, Text1 etc.). Um den späteren Zugriff zu erleichtern, codieren
wir den Zeilen- und Spaltenindex in die Name-Eigenschaft hinein (Beispiel: Text24 = 2. Zeile, 4. Spalte).
Gestartet werden soll unser kleiner »Formularassistent« über die Befehlsschaltfläche:
Sub Befehl0_Click()
Call controlArray
End Sub
Test
Öffnen Sie das Startformular, und klicken Sie auf die Befehlsschaltfläche »Neues Formular«.
Abbildung 5.13 Das Startformular
Microsoft Access ist einen kleinen Moment beschäftigt, dann erscheint, gewissermaßen aus dem »Nichts«
heraus, die Entwurfsansicht eines neuen Formulars mit dem Namen Formular1.
Abbildung 5.14 Die Entwurfsansicht des
automatisch generierten Formulars
Schließen Sie dieses neue Formular über dessen Systemmenü. Es erscheint die Meldung aus der folgenden
Abbildung:
279
Praxisbeispiele

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.