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. Abb. 1). Der festgelegte Wert wird dann im neuen Datensatz bereits angezeigt (s. Abb. 2).
  • pic001.png

    Abb. 1: Festlegen eines Standardwertes im Tabellenentwurf

    pic003.png

    Abb. 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 Abb. 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

    Abb. 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 Abb. 4 aussehen. Das Feld Standardanrede verwendet wiederum die Tabelle tblAnreden als Datensatzherkunft für ihr Nachschlagefeld. Dadurch können Sie wie in Abb. 5 ganz einfach den gewünschten Standardwert auswählen.

pic005.png

Abb. 4: Optionentabelle mit aktuell nur einer Option

pic004.png

Abb. 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 Abb. 6 einstellen – und zwar mit einer einfachen DLookup-Abfrage:

pic006.png

Abb. 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 Abb. 7 aus. Sie sortiert die Werte des Feldes AnredeID nach der Anzahl ihres Vorkommens in der Tabelle tblKunden. Damit das Ergebnis nur den ersten Wert und somit die meistverwendete Anrede liefert, erhält die Eigenschaft Spitzenwerte der Abfrage den Wert 1. Das Ergebnis der Abfrage sieht wie in Abb. 8 aus.

pic009.png

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

pic007.png

Abb. 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. Abb. 9).

pic008.png

Abb. 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 ...

Workplace

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

Schreibe einen Kommentar