Standardwerte aus Lookup-Tabellen

Es gibt eine Reihe von Beispielen für den Einsatz von Lookup-Tabellen – die einfachste ist wohl die Tabelle zum Speichern von Anreden. In einigen Fällen soll eines der enthaltenen Elemente standardmäßig verwendet werden. Dann gilt es, dieses Standardelement entsprechend zu deklarieren. Wie so oft gibt es unter Access verschiedene Möglichkeiten, dies zu realisieren – und es gibt verschiedene Schwierigkeitsgrade. Dieser Beitrag zeigt einige Varianten auf.

Einfache Standardwerte

Wenn ein Formular auf einer Tabelle etwa namens tblKunden basiert, welche die Auswahl der Anrede per Nachschlagefeld ermöglicht, kann der Benutzer eine der Anreden auswählen – zum Beispiel Herr, Frau oder Firma.

Das heißt, dass der Benutzer immer eine Auswahl treffen muss. Diese Arbeit können Sie dem Benutzer erleichtern, indem Sie einen der Werte des Kombinationsfeldes als Standardwert festlegen. Dazu gibt es verschiedene Varianten:

  • Sie legen einen der Werte des Primärschlüsselfeldes der Tabelle tblAnreden als Standardwert der Tabelle tblKunden fest (s. Bild 2).
  • pic001.png

    Bild 1: Festlegen eines Standardwertes im Tabellenentwurf

    pic003.png

    Bild 2: Standardwert in der Datenblattansicht

  • Sie legen einen der Werte des Primärschlüsselfeldes der Tabelle tblAnreden als Standardwert des Kombinationsfeldes im Formular fest. Wie dies gelingt, zeigt Bild 3. Wenn Sie ein gebundenes Feld auf Basis eines Feldes der Datenherkunft aus der Feldliste in das Formular ziehen, wird die Standardwert-Eigenschaft mit dem gleichen Wert wie in der Tabelle eingerichtet.
  • pic002.png

    Bild 3: Festlegen eines Standardwertes im Formularentwurf

  • Sie lassen den Benutzer festlegen, welcher der Werte der Tabelle tblAnreden als Standardwert verwendet werden soll. Eine solche Information würde man dann beispielsweise in einer Optionen-Tabelle verwalten.

Standardanrede in Optionentabelle

Eine einfache Optionentabelle mit nur der einen benötigten Option könnte im Entwurf wie in Bild 5 ganz einfach den gewünschten Standardwert auswählen.

pic005.png

Bild 4: Optionentabelle mit aktuell nur einer Option

pic004.png

Bild 5: Festlegen der Standardanrede in der Optionentabelle

In einem Formular, welches ein Nachschlagefeld namens AnredeID auf Basis der Tabelle tblAnreden einsetzt, können Sie den in der Tabelle tblOptionen festgelegten Standardwert wie in Bild 6 einstellen – und zwar mit einer einfachen DLookup-Abfrage:

pic006.png

Bild 6: Dynamischer Standardwert

=DomWert("Standardanrede";"tblOptionen")

Wenn Sie den Standardwert in der Tabelle tblOptionen bei geöffnetem Formular frmKunden ändern, wird beim Anlegen des folgenden Datensatzes bereits der gewählte Standardwert verwendet.

Im Tabellenentwurf können Sie einen solchen Ausdruck übrigens nicht verwenden. Dort sind nur ganz wenige Standardfunktionen wie etwa Datum() oder statische Werte erlaubt.

Meistgenutzter Wert als Standard

Wenn Sie es auf die Spitze treiben möchten, können Sie auch jeweils abfragen, welcher Wert des Nachschlagefeldes bisher am meisten verwendet wurde. Dazu brauchen Sie die Optionentabelle nicht mehr, sondern passen nur den Ausdruck für die Eigenschaft Standardwert an – und zwar auf diesen Ausdruck (im Beispielformular frmKunden für das Kombinationsfeld cboAnredeIDMeistgenutzt eingestellt):

=DomWert("AnredeID";"qryMeisteAnrede")

Die dort verwendete Abfrage qryMeisteAnrede sieht im Entwurf wie in Bild 8 aus.

pic009.png

Bild 9: Der Standardwert kann gleich nach der Auswahl eines Wertes auf den gewählten Wert eingestellt werden.

pic007.png

Bild 7: Abfrage zur Ermittlung der meistgenutzten Anrede im Entwurf …

In diesem Fall ermittelt das Formular bei jedem Wechseln zum neuen Datensatz, welche Anrede eingesetzt werden soll.

Letzte Auswahl verwenden

Wenn Sie für neue Datensätze jeweils den zuvor gespeicherten Wert im Nachschlagefeld als Standardwert nutzen wollen, benötigen Sie eine kleine VBA-Routine, die nach dem Speichern des vorherigen Datensatzes den Standardwert neu setzt. Im Fall des Fremdschlüsselfeldes AnredeID verwenden Sie den folgenden Ausdruck – hier in der Ereignisprozedur, die durch das Ereignis Nach Aktualisierung des Kombinationsfeldes cboAnredeIDVorher im Beispielformular frmKunden ausgelöst wird:

Private Sub cboAnredeIDVorher_Click()
    Me!cboAnredeIDVorher.DefaultValue = Str(CDbl(Me!cboAnredeIDVorher))
End Sub

Die Wirkung zeigt sich sofort. Im Beispielformular frmKunden brauchen Sie nur einen neuen Wert für das unterste Kombinationfeld auszuwählen und nach Vervollständigung der übrigen Felder zu einem neuen Datensatz zu wechseln. Dieser zeigt dann gleich den zuletzt festgelegten Eintrag als Standardwert an (s. Bild 9).

pic008.png

Bild 8: … und in der Datenblattansicht

Abhängige Lookup-Datensätze

Mit abhängigen Lookup-Datensätzen sind solche Datensätze einer Lookup-Tabelle gemeint, die nicht allgemein ausgewählt werden sollen, sondern nur in Abhängigkeit vom aktuellen Datensatz der verknüpften Tabelle. Dies lässt sich am besten anhand eines Beispiels erläutern – in diesem Falle an den Kostenstellen eines Kunden.

Sie haben das Ende des frei verfügbaren Textes erreicht. Möchten Sie ...

TestzugangOder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:

Schreibe einen Kommentar