Datenherkunft Ausdruck ◦ ?

#### Motivation

Die Tabelle SCORESZO speichert die studentischen Antworten auf Zuordnungsfragen. Ein Teil der Werte von SCORESZO stammt aus dem folgenden Formular FrmZuordnung:

Die Lösungswerte TxfBuchstabenpräfix und TxfZahlenpräfix des Unterformulars ZOBenutzerlösungen reichen aber nicht zur Identifikation einer Zeile von SCORESZO. Der Identifikationsschlüssel von SCORESZO besteht nämlich aus den folgenden Attributen:

- Fragenschlüssel
- Matrikelnummer
- Testschlüssel
- Buchstabenpräfix
- Zahlenpräfix.

Wenn der Testteilnehmer im Formular FrmZuordnung ein Lösungspaar eingibt, kann Access lediglich drei dieser Schlüsselattribute instanzieren, nämlich Fragenschlüssel, Buchstabenpräfix und Zahlenpräfix. Die Präfices gibt der Testteilnehmer ein und der Fragenschlüssel stammt aus der Datenherkunft von FrmZuordnung. Sobald der Teilnehmer auf eine andere Zeile des Unterformulars ZOBenutzerlösungen wechselt, erscheint eine Fehlermeldung, weil eine Zeile nur dann eingefügt werden kann, wenn alle Werte des Primärschlüssels bekannt sind. Der Entwickler muss deshalb die Matrikelnummer und den Testschlüssel aus einer zusätzlichen Datenherkunft beziehen. Eine Möglichkeit ist das folgende Vorgehen:

> Wir speichern die beiden Werte in den versteckten Textfeldern Txf MatrikelnummerFürAktualisierung sowie Txf TestschlüsselFürAktualisierung und fügen sie neben den sichtbaren Feldern TxfBuchstabenpräfix und TxfZahlenpräfix an. Sie sollen vor dem Anwender versteckt bleiben, weil ihre Daten nicht von ihm, sondern vom Programm stammen. Da sie Attribute von SCORESZO aktualisieren, hängen wir das Suffix FürAktualisierung an. Die beiden Felder sollen ihre Wert nicht aus einer Abfrage oder Tabelle sondern aus einem Ausdruck, genauer dem Rückgabewert einer Funktion, beziehen.

#### Definition

Wir veranschaulichen am versteckten Feld TxfMatrikelnummerFürAktualisierung des Unterformulars Zahlenalternativen die Datenherkunft Ausdruck. Der folgende Ausschnitt aus der Eigenschaftenliste enthält unter der Eigenschaft Standardwert den Ausdruck Matrikel(). Standardwert heisst, dass TxfMatrikelnummerFürAktualisierung nach dem Formularstart automatisch mit dem Ergebnis der Funktion Matrikel() inititalisiert wird. Weil die Eigenschaft Steuerelementinhalt mit dem Feld Matrikelnummer der Tabelle SCORESZO verknüpft ist, wird der Rückgabewert Matrikel() nicht nur zum Standardwert des versteckten Textfelds, sondern auch zum Wert der Spalte Matrikelnummer der laufenden SCORESZO-Zeile.

Die Funktion Matrikel() finden Sie im Standardmodul von Access_Quiz.mdb:

>     '--- Für den Gebrauch im Unterformular ZOBenutzerlösungen
>     Public Function Matrikel() As String
>       Matrikel = pub_Matrikelnummer
>     End Function

Das Schlüsselwort Public ist erforderlich, weil Matrikel() ausserhalb des vereinbarenden Standardmoduls verwendet wird. Die Aufgabe von Matrikel() ist es lediglich, den Wert der Variablen pub_Matrikelnummer zurückzugeben. Diese Variable wird zu Beginn des Programms vom Testteilnehmer erfragt und ist ebenfalls Public. Der Steuerelementinhalt von TxfTestschlüsselFürAktualisierung wird analog ermittelt.

Datenherkunft
Datenherkunft Tabelle
Datenherkunft Abfrage