Kapitel 5: Programmieren mit Objekten
Abbildung 5.15 Meldung beim Schließen der
Entwurfsansicht des neu erzeugten Formulars
Antworten Sie mit »Ja« und verordnen Sie dem Formular im nun erscheinenden Dialogfeld gegebenenfalls
einen neuen Namen.
Öffnen Sie nun das neue Formular (vom Navigationsbereich aus) und Sie können sich am Anblick einer
aufgeräumten Bedienoberfläche mit einem exakt ausgerichteten Array erfreuen.
Abbildung 5.16 Das generierte Formular zur Laufzeit
Bemerkungen
Mit der gleichartig aufgebauten Funktion CreateReportControl können Sie auf analoge Weise Steuer-
elemente in einem Bericht erstellen.
Bestens geeignet sind die Funktionen CreateControl/CreateReport zur Entwicklung von Assistenten für
die automatisierte Formular- und Berichtserstellung.
Sie können ein Steuerelement mit Hilfe der Anweisungen DeleteControl/DeleteReportControl wieder aus
einem Formular oder Bericht entfernen.
Mit Formular-Instanzen arbeiten
Form-Objekttyp: New-, Set-Anweisung; Nothing-Objekt;
Formulare und Berichte sind unter Microsoft Access Klassenmodule, sie eignen sich damit als Vorlage (ge-
wissermaßen »Prägestempel«) für weitere Formulare/Berichte. Im vorliegenden Beispiel soll gezeigt werden,
wie man von einem Formular mehrere »Kopien« (Nicht-Standardinstanzen) erzeugen und damit arbeiten
kann.
280
Oberfläche
Binden Sie ein Formular an die Tabelle PERSONAL
1
, ändern Sie den Namen in Standardinstanz und bin-
den Sie ein Textfeld an das Feld Nachname. Fügen Sie drei Befehlsschaltflächen (Befehl1 ... Befehl3) hinzu.
Quelltext
Das Referenzieren der beiden Objektvariablen erfolgt auf Modulebene:
Private frm1 As Form_Standardinstanz
Private frm2 As Form_Standardinstanz
Die erste Kopie bzw. Nicht-Standardinstanz wird erzeugt. Das Setzen der
Visible
-Eigenschaft auf
True
ist
Voraussetzung dafür, dass das neue Formular auch sichtbar wird.
Private Sub Befehl1_Click()
Set frm1 = New Form_Standardinstanz
frm1.Visible = True
frm1.Caption = "Erste Nicht-Standardinstanz"
Da die Schaltflächen
Befehl1
und
Befehl2
bei den Kopien nicht benötigt werden, sollte man sie deaktivieren.
Das geht leider nur, wenn vorher der Fokus weggenommen wird:
frm1.Befehl3.SetFocus
frm1.Befehl1.Enabled = False
frm1.Befehl2.Enabled = False
End Sub
Die zweite Kopie:
Private Sub Befehl2_Click()
Set frm2 = New Form_Standardinstanz
frm2.Visible = True
frm2.Caption = "Zweite Nicht-Standardinstanz"
frm2.Befehl3.SetFocus
frm2.Befehl1.Enabled = False
frm2.Befehl2.Enabled = False
End Sub
Das Schließen des Formulars:
Private Sub Befehl3_Click()
DoCmd.Close
End Sub
Ein guter Platz fürs »Aufräumen« findet sich im
Form_Unload
-Ereignis:
Private Sub Form_Unload(Cancel As Integer)
Set frm1 = Nothing
Set frm2 = Nothing
End Sub
1
Die Tabelle PERSONAL wurde für dieses Beispiel aus NORDWIND importiert.
281
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.