Nachschlagefelder sind ein praktisches Hilfsmittel, wenn es um die Auswahl von Daten aus verknüpften Tabellen geht. Normalerweise erstellt man diese schnell und effizient mit dem Nachschlage-Assistent, den Access in der Liste der Felddatentypen anzeigt. In manchen Fällen jedoch gibt es Anforderungen, die der Nachschlage-Assistent nicht erfüllen kann. Dann ist es praktisch, wenn man weiß, wo und wie der Nachschlage-Assistent Änderungen vorgenommen hat und diese manuell an die gewünschten Anforderungen anpassen kann.
Beispieldatenbank
Die Beispiele dieses Artikels findest Du in der Datenbank 2203_ManuelleNachschlagefelder.accdb.
Beziehung als Voraussetzung
Wenn Du ein Nachschlagefeld mit dem Nachschlage-Assistent erstellst, hat dieser Änderungen an verschiedenen Stellen vorgenommen. Er hat eine Beziehung angelegt, ihre Eigenschaften nach den Vorgaben des Benutzers eingestellt und er hat dafür gesorgt, dass statt eines normalen Textfeldes ein Nachschlagefeld die Auswahl der verknüpften Tabellen erleichtert.
Mehr über die Nutzung des Nachschlage-Assistenten liest Du unter Tabellen [basics]: Der Nachschlage-Assistent (www.access-basics.de/572).
Eine Beziehung ist allerdings nicht zwingend Voraussetzung für das Auslegen eines Tabellenfeldes als Nachschlagefeld. Du kannst ein Nachschlagefeld auch ohne Vorhandensein einer Beziehung hinzufügen. Wenn Du jedoch eine Beziehung anlegen möchtest, wird dies in der Regel eine 1:n-Beziehung sein. Mehr dazu liest Du unter Tabellen [basics]: 1:n-Beziehungen (www.access-basics.de/571).
Beispiel: Projekte und Kunden
Wir schauen uns die Erstellung eines Nachschlagefeldes anhand der beiden Tabellen tblKunden und tblProjekte an. Die Tabelle tblKunden hat nur die zu Beispielzwecken notwendigsten Felder und sieht wie in Bild 1 aus.
Bild 1: Entwurf der Tabelle tblKunden
Die zweite Tabelle heißt tblProjekte und hat den Entwurf aus Bild 2. Hier haben wir bereits das Fremdschlüsselfeld KundeID angelegt, das wir gleich als Nachschlagefeld einrichten wollen.
Bild 2: Entwurf der Tabelle tblProjekte
Auch wenn eine Beziehung nicht nötig ist, haben eine solche bereits zur Datenbank hinzugefügt. Diese sieht im Beziehungen-Fenster wie in Bild 3 aus und ist mit referenzieller Integrität definiert.
Bild 3: Die Beziehung zwischen den Beispieltabellen
Wenn wir in diesem Zustand Daten in die Tabelle tblProjekte eingeben wollen, müssen wir noch die Primärschlüsselwerte der Datensätze der Tabelle tblKunden ermitteln und von Hand in das Fremdschlüsselfeld KundeID eintragen (siehe Bild 4).
Bild 4: Das Feld KundeID ohne Nachschlagefeld
Die Nachschlagen-Eigenschaften
Dass das Feld KundeID ein einfaches Textfeld ist und nicht beispielsweise ein Kombinationsfeld zur Auswahl der Daten aus der Tabelle tblKunden, liegt an den Eigenschaften dieses Feldes, die Du im Tabellenentwurf nach dem Markieren des Feldes KundeID in den Eigenschaften unter Nachschlagen findest.
Hier ist aktuell nur die Eigenschaft Steuerelement anzeigen verfügbar, die den Wert Textfeld enthält (siehe Bild 5). Es gibt jedoch, wie ein Klick auf das Auswahlfeld für diese Eigenschaft zeigt, noch weitere Optionen.
Bild 5: Diese Standardeinstellung sorgt für die Anzeige eines Textfeldes zur Dateneingabe.
Wechseln zum Kombinationsfeld
Die für uns interessante Einstellung lautet Kombinationsfeld. Sobald Du diese Option auswählst, erscheinen noch einige weitere Eigenschaften, die Du in Bild 6 siehst. Diese Eigenschaften schauen wir uns in den nächsten Abschnitten an.
Bild 6: Eigenschaften eines frisch angelegten Nachschlagfeldes
Hier in der Übersicht:
- Steuerelement anzeigen: Ermöglicht die Anzeige verschiedener Steuerelemente, normalerweise Textfeld, Listenfeld und Kombinationsfeld. Bei Ja/Nein-Feldern gibt es die Möglichkeiten Kontrollkästchen, Textfeld und Kombinationsfeld.
- Herkunftstyp: Gibt an, ob die Daten aus einer Tabelle/Abfrage, einer Wertliste oder Feldliste stammen. In der Regel verwendet man hier Tabelle/Abfrage.
- Datensatzherkunft: Gibt die Bezeichnung der tatsächlichen Datenquelle an, die davon abhängt, welchen Wert man für Herkunftstyp gewählt hat. Bei Tabelle/Abfrage gibt man hier entweder den Namen einer Tabelle oder Abfrage an oder auch eine Abfrage in Form einer SQL-Anweisung – so, wie es auch beim Nachschlage-Assistenten geschieht.
- Gebundene Spalte: Gibt an, welche der Spalten der Datensatzherkunft an das hier definierte Feld der Tabelle gebunden wird.
- Spaltenanzahl: Legt fest, wieviele Spalten der Datensatzherkunft im Nachschlagefeld angezeigt werden sollen.
- Spaltenüberschriften: Gibt an, ob die Feldnamen der Datensatzherkunft als Spaltenüberschriften angezeigt werden sollen.
- Spaltenbreiten: Gibt die Breite der einzelnen anzuzeigenden Spalten der Datensatzherkunft an.
- Zeilenanzahl: Gibt an, wieviele Zeilen das aufgeklappte Nachschlagefeld anzeigen soll.
- Listenbreite: Legt die Breite der ausgeklappten Liste in Zentimetern fest.
- Nur Listeneinträge: Gibt an, ob nur Listeneinträge ausgewählt werden können oder auch andere Werte.
- Mehrere Werte zulassen: Legt fest, ob nur ein Wert ausgewählt werden kann oder auch mehrere.
- Bearbeitungsformular für Listenelemente: Erlaubt die Angabe eines Formulars, mit dem die Listenelemente bearbeitet werden können.
- Nur Datensatzherkunftswerte anzeigen: Legt fest, ob nur Elemente der Datensatzherkunft angezeigt werden dürfen.
Die Eigenschaft Steuerelement anzeigen haben wir ja bereits kennengelernt – mit dieser wählen wir für Nachschlagefelder in Tabellen immer den Wert Kombinationsfeld aus (mehr zur möglichen Alternative Listenfeld gleich im Anschluss). Die übrigen Eigenschaften betrachten wir in den nachfolgenden Abschnitten.
Wozu der Eintrag Listenfeld
Vielleicht fragst Du Dich, wozu wir an dieser Stelle ein Listenfeld gebrauchen könnten. Die Antwort ist: Wenn Du das Nachschlagefeld nutzen möchtest, um damit in der Datenblattansicht Daten aus verknüpften Tabellen auszuwählen oder auch in anderen Formularansichten automatisch Kombinationsfelder auf Basis der hier verwendeten Einstellungen zu erstellen, brauchst Du die Option Listenfeld nicht.
Es kann aber sein, dass in Formularen, die an diese Tabelle gebunden werden, ein Listenfeld zur Auswahl der Daten des Nachschlagefeldes verwendet werden soll. In diesem Fall ist die Auswahl von Listenfeld statt Kombinationsfeld sichtbar. In der Datenblattansicht von Tabellen, Abfragen oder Formularen wird jedoch immer ein Kombinationsfeld angezeigt, auch wenn Du die Option Listenfeld ausgewählt hast.
Herkunftstyp festlegen
Wenn Du Daten aus einer der übrigen Tabellen der Datenbank zur Auswahl bereitstellen möchtest, wählst Du hier den Wert Tabelle/Abfrage aus. Die Wahl des Wertes für diese Eigenschaft beeinflusst wesentlich, wie die nachfolgend beschriebene Eigenschaft Datensatzherkunft ausgewertet wird – siehe in der dortigen Beschreibung.
Es gibt noch zwei andere Werte, die wir der Vollständigkeit halber beschreiben wollen:
- Wertliste: Diese Einstellung kannst Du nutzen, wenn das Nachschlagefeld die Werte nicht aus einer Tabelle oder Abfrage beziehen soll, sondern wenn Du die Liste manuell angeben möchtest. Du könntest beispielsweise Anreden nicht aus einer separaten Tabelle beziehen, sondern die verfügbaren Werte für die Eigenschaft Datensatzherkunft in einer durch Semikola getrennten Wertliste bereitstellen. Mehr dazu gleich.
- Feldliste: Wählst Du diesen Wert aus, kannst Du für die Eigenschaft Datensatzherkunft den Namen einer Tabelle oder Abfrage oder eine SQL-Abfrage angeben. Das Nachschlagefeld bietet dann alle Felder dieser Datenquelle zur Auswahl an.
Datensatzherkunft einstellen
Wenn Du wie oben vorgeschlagen Tabelle/Abfrage als Wert der Eigenschaft Herkunftstyp angegeben hast, hast Du festgelegt, dass Daten aus den Tabellen der Datenbank im Nachschlagefeld erscheinen sollen. Um festzulegen, welche das sein sollen, hast Du drei Möglichkeiten:
- Name einer Tabelle
- Name einer gespeicherten Abfrage
- SQL-Abfrage (SELECT …)
Der Nachschlage-Assistent stellt immer eine SQL-Abfrage auf Basis der vom Benutzer getätigten Eingaben zusammen, der beispielsweise wie folgt aussieht:
SELECT [tblKategorien].[KategorieID], [tblKategorien].[Kategoriebezeichnung] FROM tblKategorien ORDER BY [tblKategorien].[Kategoriebezeichnung] ASC;
Grundsätzlich solltest Du immer so wenige Felder wie möglich zu einer Datensatzherkunft hinzufügen – egal, ob für ein Nachschlagefeld in einer Tabelle oder einem Kombinationsfeld oder Listenfeld in einem Formular. Es kann vorkommen, dass alle Felder einer Tabelle in der Datensatzherkunft für ein Nachschlagefeld benötigt werden. Wenn die Tabelle tblKategorien nur die beiden Felder KategorieID und Kategoriebezeichnung enthält, reicht es also aus, den Wert tblKategorien für die Eigenschaft Datensatzherkunft des Nachschlagefeldes einzutragen. Dann hast Du jedoch noch keine Sortierung festgelegt und die Datensätze werden im Nachschlagefeld in der Standardsortierung ausgegeben, die sich in der Regel nach dem Wert des Primärschlüsselfeldes in aufsteigender Reihenfolge orientiert.
Möchten Sie weiterlesen? Dann lösen Sie Ihr Ticket!
Hier geht es zur Bestellung des Jahresabonnements des Magazins Access [basics]:
Zur Bestellung ...
Danach greifen Sie sofort auf alle rund 400 Artikel unseres Angebots zu - auch auf diesen hier!
Oder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein: