Wer kann mir einen Tipp bei folgender Frage geben?
Zunächst ein paar Eckdaten:
Ich habe eine Adressdatenbank mit
einer Tabelle „Adressbuch“
einer Abfrage, in der die Daten des Adressbuchs bearbeitet werden
einem Formular „Adressbuch“, das auf der entsprechenden Abfrage aufbaut.
In meinem Formular habe ich ein Kombinationsfeld und ich möchte gerne, dass mir dort z.B. folgende Werte angeboten werden:
Titel + Nachname
Titel + Vorname + Nachname
Vorname + Nachname
Nachname
Dabei soll sich diese Auswahl natürlich nur nach dem aktuell ausgewählten Datensatz richten.
Wie stelle ich das am elegantesten an? Mein eigener Lösungsvorschlag wäre, eine UNION-Abfrage zu bilden, in der die oben genannten Abfragen gebündelt werden, allerdings habe ich dann das Problem, dass dort die Namen aller Personen in der Adressdatenbank auftauchen. Ich frage mich, ob es dann womöglich einen Befehl gibt, die UNION-Abfrage so zu filtern, dass nur der aktuelle Datensatz berücksichtigt wird?
Dabei soll sich diese Auswahl natürlich nur nach dem aktuell
ausgewählten Datensatz richten.
Vielleicht klingt das unverständlich. Angenommen ich habe eine Person in der Datenbank „Dr. Willy Mustermann“, dann möchte ich, dass in dem Kombinationsfeld ausschließlich folgende Werte angegeben werden:
Dabei soll sich diese Auswahl natürlich nur nach dem aktuell
ausgewählten Datensatz richten.
Vielleicht klingt das unverständlich.
Ja, in der Tat. Alles IST missverständlich…
Angenommen ich habe eine
Person in der Datenbank „Dr. Willy Mustermann“, dann möchte
ich, dass in dem Kombinationsfeld ausschließlich folgende
Werte angegeben werden:
Dr. Mustermann
Dr. Willy Mustermann
Willy Mustermann
Mustermann
Ich kann mir keinen richtigen Reim daraus machen, was Du erreichen willst…
Ich möchte gerne ein Kombinationsfeld in meinem Formular haben, in dem die Werte anderer Felder zur Auswahl gestellt werden.
Normalerweise gehe ich in der Entwurfansicht auf das entsprechende Kombinationsfeld, dort rufe ich die Datensatzherkunft auf und definiere, dass ein anderes Feld der Datenbank als Grundlage für das Kombinationsfeld dienen soll. Wenn mehrere Felder gebündelt werden sollen, dann machen ich eine UNION-Abfrage.
Beispiel:
Das Kombinationsfeld heißt „Bevorzugte Anrede für die Person:“ und nun möchte ich, dass mir das Feld den „Nachnamen“ und den „Vornamen“ der Person zur Auswahl anbietet (und hinterher auch komplexere Varianten mit Titel usw.). Selbstverständlich soll das Kombinationfeld nur Werte ausspucken, die sich auf den aktuellen Datensatz beziehen und alle anderen Datensätze unberücksichtigt lassen.
Also wenn der Kontakt „Dr. Willy Mustermann“ heißt, dann soll mir das Kombinationsfeld („Bevorzugte Anrede“) alle möglichen Kombinationen aus Titel, Vornamen und Nachnamen anbieten.
Vielleicht gibt es ja einen ganz anderen Lösungsansatz.
Also wenn der Kontakt „Dr. Willy Mustermann“ heißt, dann soll mir das Kombinationsfeld („Bevorzugte Anrede“) alle möglichen Kombinationen aus Titel, Vornamen und Nachnamen anbieten.
Vielleicht gibt es ja einen ganz anderen Lösungsansatz.
Ja, das ist die eigentliche Lösung…
Voraussetzung ist die Verwendung unterschiedlicher Felder für jeweils Anrede, Titel, Vorname und Nachname.
Wie schlage ich die Verbindung zwischen dem Kombinationsfeld und dem VBA-Code? Wenn ich auf Eigenschaften des Kombinationsfeldes gehe, dann kann ich bei „Herkunftstyp“ den Unterpunkt „Wertliste“ aktivieren. Wie komme ich von dort aus zu der Eingabemöglichkeit für den o.g. Code?
Auch hier ergibt sich für mich nur noch die Frage (vgl. Antwort von Wolfgang (Netwolf)), wie ich vom Kombinationsfeld zum VBA-Code komme? Wenn ich auf Eigenschaften des Kombinationsfeldes gehe, dann kann ich bei „Herkunftstyp“ den Unterpunkt „Wertliste“ oder „Tabelle/Abfrage“ wählen. Wie komme ich von dort aus zu der Eingabemöglichkeit für den o.g. Code?