Zur Hauptseite ... Zum Onlinearchiv ... Zum Abonnement ... Zum Newsletter ... Zu den Tools ... Zum Impressum ... Zum Login ...

Achtung: Dies ist nicht der vollständige Artikel, sondern nur ein paar Seiten davon. Wenn Sie hier nicht erfahren, was Sie wissen möchten, finden Sie am Ende Informationen darüber, wie Sie den ganzen Artikel lesen können.

Kompletten Artikel lesen?

Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

E-Mail:

Gedrucktes Heft

Diesen Beitrag finden Sie in Ausgabe 3/2013.

Unser Angebot für Sie!

Lesen Sie diesen Beitrag und 500 andere sofort im Onlinearchiv, und erhalten Sie alle zwei Monate brandheißes Access-Know-how auf 72 gedruckten Seiten! Plus attraktive Präsente, zum Beispiel das bald erscheinende Buch 'Access 2010 - Das Grundlagenbuch für Entwickler'!

Diesen Beitrag twittern

Zusammenfassung

Erfahren Sie, wie Sie nicht nur einfache Standardwerte, sondern auch dynamische Standardwerte oder Standardwerte für verknüpfte Tabellen definieren.

Techniken

Datenmodellierung, Formulare, VBA

Voraussetzungen

Access 2000

Beispieldateien

Standardwerte_1.mdb, Standardwerte_2.mdb

Shortlink

www.access-im-unternehmen.de/883

Standardwerte aus Lookup-Tabellen

André Minhorst, Duisburg

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 Teils des Artikels erreicht. Lesen Sie weiter, um zu erfahren, wie Sie den vollständigen Artikel lesen und auf viele hundert weitere Artikel zugreifen können.

Sind Sie Abonnent?Jetzt einloggen ...
 

Kompletten Artikel lesen?

Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

E-Mail:

© 2003-2015 André Minhorst Alle Rechte vorbehalten.