Ein komplexes Formular ◦ ?

Das Formular FrmAllgemeines der Autorenkomponente von TESTS ist wesentlich komplexer als das Startformular. Es enthält eine Vielfalt von Steuerelementen zu den Stammdaten der laufenden Aufgabe:

###
Klassen von Steuerelementen

- Bezeichnungsfelder ...

> erläutern die Bedeutung der Steuerelemente oder des Formulars.

- Textfelder ...

> enthalten nummerische oder alphabetische Daten. Steuerelemente (zum Beispiel Textfelder oder die unten eingeführten Listen- oder Kombinationsfelder) heissen gebunden, falls ihre Daten aus einer Tabelle stammen. Ein ungebundenes Feld bezieht seine Werte hingegen aus einer Programmvariable oder -funktion.

- Listenfelder ...

> ersetzen die explizite Eingabe durch einen Klick auf einen Menüwert.

- Kombinationsfelder

> Ein Listenfeld mit vielen Menüzeilen beansprucht Platz. Das Listenfeld Thema erstreckt sich zum Beispiel über die ganze Formularhöhe. Ein Kombinationsfeld wie Aufgabenquelle erfordert hingegen nur eine einzige Zeile. Sie wählen den gewünschten Wert, indem Sie auf und dann auf eine der erscheinenden Menüzeilen klicken.

- Unterformulare

> Ein Unterformular ist Teil eines Hauptformulars. FrmAllgemeines ist das Hauptformular, Subfrm Fragenverwendung das Unterformular. Es heisst Fragenverwendung, weil es die Testtermine auflistet, für welche die laufende Aufgabe verwendet wird. Die Aufgabe und ihre Testtermine stehen in einer 1:m-Beziehung: das Hauptformular zeigt 1 bestimmte Aufgabe an, während der Inhalt des Unterformulars aus den zugehörigen m Terminen besteht (m steht für 0, 1 oder mehrere Tabellensätze).

- Befehlsschaltflächen

> Eine Befehlsschaltfläche ist eine Rechtecksfläche mit einem Bild oder Bezeichner. Die Schaltfläche enthält zum Beispiel ein Bild (den Inhalt der Bitmapdatei Voreinstellung.btm), und die drei Schaltflächen links unten enthalten je einen Bezeichner.

> Eine Schaltfläche ist ein aktives Steuerelement, weil der Entwickler einem ihrer Ereignisse (meist einem Linksklick) ein Unterprogramm zuordnet. Das Beispiel QuadratDialog zeigt, wie Sie für das Klickereignis einer Schaltfläche eine Ereignisprozedur entwickeln können.

- Navigationsfeld und Navigationsschaltflächen

> Das weisse Navigationsfeld zeigt die Nummer des aktuellen Datensatzes an. Mit den grauen Navigationsschaltflächen können Sie den aktuellen Datensatz des Formulars wechseln. Die Schaltfläche mit * lässt Sie einen neuen Satz anfügen. Im Gegensatz zu den bisher erwähnten Steuerelementen sind diese Steuerelemente systemdefiniert. Die Entwicklerin kann sie nicht anpassen.

### Ereignisprozeduren

Jedes Steuerelement lässt sich durch seine klassentypischen Eigenschaften und Methoden beschreiben. Ein bestimmtes Element unterscheidet sich von den anderen Instanzen der gleichen Klasse durch unterschiedliche Ausprägungen dieser Eigenschaften und Methoden. Eigenschaften sind Merkmale wie Grösse und Farbe. Die meisten Methoden von Steuerelementen reagieren auf Ereignisse und heissen deshalb auch Ereignisprozeduren. Die Eigenschaften und Ereignisprozeduren können Sie inspizieren oder ändern, indem Sie »Ansicht/Entwurfsansicht wählen und dann mit »Alt/Eingabetaste die Eigenschaftenliste anzeigen.

Die Listenfelder IstOLE und Aufgabentyp von FrmAllgemeines bestimmen, welches Formular nach einem Klick auf die Schaltfläche Text bearbeiten erscheint. Je nach ihren Werten wird eines der folgenden Formulare geöffnet:

- FrmMehrfachwahl bei einer Mehrfachwahlaufgabe unter Access

- FrmOLEMc bei einer Mehrfachwahlaufgabe unter Word

- FrmZuordnung bei einer Zuordnungsaufgabe unter Access

- FrmOLEZo bei einer Zuordnungsaufgabe unter Word

- FrmEssay bei einer Essayaufgabe unter Access

- FrmOLEEssay bei einer Essayaufgabe unter Word.

Der folgende VBA-Code ist eine vereinfachte Version der Ereignisprozedur, die einen Klick auf die Schaltfläche Aufgabe bearbeiten beantwortet:

>     '--- Öffnet je nach Aufgabentyp und IstOLE ein anderes Formular
>     '    [IstOLE] ist der laufende Wert des Listenfelds IstOLE (MS Word-Aufgabe oder nicht?)
>     '    [Aufgabentyp] ist der laufende Wert des Listenfelds Aufgabentyp
>     Private Sub BtnAufgabeBearbeiten_Click()
>       If [IstOLE] = -1 And [Aufgabentyp] = 3 Then
>         DoCmd.OpenForm "FrmOLEEssay"
>       ElseIf [IstOLE] = -1 And [Aufgabentyp] <= 2 Then
>         DoCmd.OpenForm "FrmOLEMc"
>       ElseIf [IstOLE] = -1 And [Aufgabentyp] <= 3 Then
>         DoCmd.OpenForm "FrmOLEZo"
>       ElseIf [Aufgabentyp] = 1 Then
>         DoCmd.OpenForm "FrmMehrfachwahl"
>       ElseIf [Aufgabentyp] = 2 Then
>         DoCmd.OpenForm "FrmZuordnung"
>       ElseIf [Aufgabentyp] = 3 Then
>         DoCmd.OpenForm "FrmEssay"
>       End If
>     End Sub

MS Access-Steuerelemente
Unterformulare

Wie setzte ich einen Eingabewert zurück?
Wie melde ich Lösch- bzw. Aktualisierungsweitergabe?
W ie integriere ich die Hilfe?