In einer Access-Datenbank stellte sich die Frage, wie ein „Kombofeld“ als Auswahlfeld genutzt werden kann, um eine schnelle Filterung der umfangreicher Datenbank zu ermöglichen.
Zunächst muss die Abfrage eingestellt werden, auf die sich bezogen wird. Kriterium: „Auflistung aller aktiven Mitarbeiter“ und „Auflistung aller inaktiven Mitarbeiter“
Die Abfragen sind schnell erstellt:
- Menu Erstellen -> Abfrageentwurf
- Mitarbeitertabelle einfügen
- Die Felder ID, Aktiv, Nachname und Vorname auswählen
- Als Filter unter Aktiv „Wahr“ auswählen
- Sortierung bei Nachname und Vorname „Aufsteigend“
- Die erstelle Abfrage unter „Mitarbeiter_aktiv“ speichern
- Die Abfrage kopieren und „Mitarbeiter_inaktiv“ benennen
- Die Abfrage im Entwurfsmodus öffnen und den Filter unter Aktiv auf „Falsch“ setzen
- Die Abfrage speichern und schließen
Somit hätten sind die nötigen Abfragen erstellt und es können nun die Kombofelder einfügt werden. Dazu wird das Formular „Mitarbeiterverwaltung“ im Entwurfsmodus aufgerufen und aus dem Menu „Entwurf“ das Kombofeld in das Formular gezogen.
Es öffnet sich der Kombinationsfeld-Assistent. Die einzelnen Schritt wie folgt durchgehen:
- Den Punkt „Das Kombinationsfeld soll die Werte aus einer Tabelle oder Abfrage aufrufen.“ Danach auf „Weiter“ klicken.
- Ansicht auf Abfragen stellen und die Abfrage „Mitarbeiter_aktiv“ auswählen und mit „Weiter“ bestätigen. Im folgenden Fenster alle Felder einfügen und mit „Weiter“ bestätigen.
- Die Sortierkriterien festgelegt werden und mit „Weiter“ bestätigen.
- Es folgt die Anpassung der Spaltenbreiten. Dabei können Spalten, die in der Ansicht nicht gebraucht werden, direkt ausgeblendet werden. Das Fenster mit „Weiter“ bestätigen.
- Jetzt das Datenfeld bestimmen, dass gespeichert werden soll. Da es eindeutig ist, das Feld „ID“ nehmen und „Weiter“ klicken.
- Den Wert nur zwischenspeichern und auf „Weiter“ klicken. Ansonsten ist die Navigation nicht möglich.
- Dem Kombofeld einen Namen geben und auf „Fertig stellen“ klicken.
Abschließend muss noch ein kleines Marko dem Ereignis „Nach Aktualisierung“ hinzugefügt werden.
Me.Recordset.FindFirst "ID = " & Me!Auswahlfeld Me!Auswahlfeld.Value = ""
In der ersten Zeile wird aus dem Auswahlfeld der nicht angezeigte Wert für ID ausgewählt und der Datensatz im geöffneten Formular über FindFirst gesucht. Da die ID eindeutig ist, kann es nur einen Datensatz mit dieser ID geben.
In der zweiten Zeile wird dann das Anzeigefeld wieder gelöscht.
Für weitere Auswahlfelder wird der Vorgang dann mit angepassten Variablen wiederholt.