Kapitel 3: Formulare und Steuerelemente
Programmieren des Hauptformulars
Beim Öffnen des Hauptformulars werden zunächst dessen
Datensatzquelle
und die
Steuerelementinhalt
e der
Textfelder zugewiesen:
Private Sub Form_Open(Cancel As Integer)
RecordSource = "SELECT * FROM Firmen ORDER BY Firma"
Text1.ControlSource = "Firma"
Text2.ControlSource = "PLZ"
Text3.ControlSource = "Ort"
Text4.ControlSource = "Tel"
Text5.ControlSource = "Bemerkungen"
Nun zum Unterformular. Per Code wird das erledigt, was sonst im Eigenschaftenfenster mit
Verknüpfen von
und
Verknüpfen nach
eingestellt wird:
SubForm1.LinkChildFields = "Lieferant" ' Verknüpfen von
SubForm1.LinkMasterFields = "Nr" ' Verknüpfen nach
End Sub
Test des Hauptformulars
Öffnen Sie das Hauptformular und blättern Sie durch die Firmentabelle. Am unteren Rand erscheinen
Netto- und Bruttosumme aller von der angezeigten Firma gekauften Geräte. Hat eine Firma kein Gerät ge-
liefert, so wird im Unterformular eine leere Zeile ausgegeben.
Abbildung 3.24 Hauptformular mit Unterformular zur Laufzeit
Das Register-Steuerelement kennen lernen
TabControl-Objekt: Pages- und Controls-Auflistung, Value-Eigenschaft, Change-Ereignis; Control-Objekt:
ControlType-, Locked-Eigenschaft; Form-Objekt: TimerInterval-Eigenschaft, Timer-Ereignis; AfterUpdate-
Ereignis; SubForm-Objekt: LinkChildFields-, LinkMasterFields-Eigenschaft; CheckBox-Objekt; For Each-
Schleife; OptionGroup-Objekt; Optionsfeld;
182
Das standardmäßig vorhandene Registersteuerelement stellt beliebig viele Registerkarten (Page-Objekte) zur
Verfügung, die als Container für weitere Steuerelemente dienen. Die vorliegende Demo will möglichst viele
Programmiervarianten an einem Beispielformular verdeutlichen, deshalb werden auf die einzelnen Seiten
(Page-Objekte) verschiedenartige Controls platziert, sogar ein Unterformular (SubForm-Objekt) ist mit von
der Partie. Auf die einzelnen Objekte wird sowohl direkt als auch über die Auflistungen zugegriffen.
Das Register-Steuerelement hat eine relativ verschachtelte Objekt-Hierarchie. Die Pages-Auflistung enthält
die einzelnen Registerkarten (Seiten) als Page-Objekte. Jedes Page-Objekt verfügt (wie bei Formularen)
über eine Controls-Auflistung, die die einzelnen Steuerelemente erfasst. Es wird empfohlen, vor dem
Durcharbeiten dieses Rezeptes den praktischen Umgang mit Auflistungen (Collection-Objekten) ein wenig
geübt zu haben (siehe auch Kapitel 5).
Das Ziel der vorliegenden Demo: Wir wollen auf der ersten Registerkarte die jeweilige Lieferfirma anzeigen
(Tabelle Firmen) und auf der zweiten Registerkarte in einem Endlos-Unterformular alle Geräte, die von
dieser Firma geliefert wurden (Tabelle BGA). Eine dritte Registerkarte soll schließlich dazu dienen, diverse
Anzeige-Optionen (Datum, Uhrzeit, Farbe etc.) einzustellen.
Oberfläche
Öffnen Sie ein neues Formular und platzieren Sie darauf ein Registersteuerelement (RegisterStr1), ein Text-
feld (Text0), drei Bezeichnungsfelder (Bezeichnungsfeld1 ... Bezeichnungsfeld3) und eine Befehlsschaltfläche
(Befehl1). Das Registersteuerelement hat standardmäßig zwei Seiten. Fügen Sie eine dritte Seite hinzu (über
das Kontextmenü der rechten Maustaste). Beschriften Sie die erste Seite mit »Firma« und platzieren Sie da-
rauf sieben Textfelder (Text1 ... Text7).
Abbildung 3.25 Hauptformular mit Register-
Steuerelement in der Entwurfsansicht
Die zweite Seite erhält die Beschriftung »Geräte«. Einziges Steuerelement ist ein Unterformular SubForm1,
welches wir bereits im vorhergehenden Praxisbeispiel »Ein Unterformular programmieren« (Seite 180) er-
stellt hatten und auf welches wir deshalb hier nicht nochmals eingehen werden.
183
Praxisbeispiele
Kapitel 3: Formulare und Steuerelemente
Abbildung 3.26 Die zweite Registerkarte enthält
ein Unterformular
Fügen Sie nun eine dritte Seite mit der Beschriftung »Optionen« hinzu. Klicken Sie dazu mit der rechten
Maustaste auf das Register-Steuerelement und wählen Sie im Kontextmenü Seite einfügen. Platzieren Sie auf
der Seite vier Kontrollkästchen (Kontrollkästchen1... Kontrollkästchen3) und eine Optionsgruppe (Rahmen1)
mit drei Optionsfeldern (Option1... Option3).
Abbildung 3.27 Die dritte Registerkarte mit
Kontrollkästchen und einer Optionsgruppe
Quelltext
Option Explicit
Die folgende Variable brauchen wir später zum Durchlaufen von
Controls
-Auflistungen (
For Each ... Next
):
Private ctrl As Control
Beim Öffnen des Hauptformulars werden zunächst Datenherkunft und Steuerelementinhalte zugewiesen:
Private Sub Form_Open(Cancel As Integer)
RecordSource = "SELECT * FROM Firmen ORDER BY Firma"
Text0.ControlSource = "Firma" : Text1.ControlSource = "PLZ"
Text2.ControlSource = "Ort" : Text3.ControlSource = "Straße"
Text4.ControlSource = "Bank" : Text5.ControlSource = "AP"
Text6.ControlSource = "Konto-Nr" : Text7.ControlSource = "Bemerkung"
Jetzt kümmern wir uns um das Verknüpfen des Unterformulars auf der »Geräte«-Seite:
SubForm1.LinkChildFields = "Lieferant" ' Verknüpfen von
SubForm1.LinkMasterFields = "Nr" ' Verknüpfen nach
Schließlich sorgen wir noch für die Anfangseinstellungen:
Call RegisterStr1_Change ' Change-Event-Handler aufrufen
Bezeichnungsfeld2.Caption = Date ' aktuelles Datum anzeigen
Rahmen1.DefaultValue = 1 ' Option1 ist Standard
184

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.