verknüpfte Felder im Endlosformular

Hallo

Habe ein Unterformular als Endlosformular. Darin sind 2 Kombinationsfelder, die voneinander abhängig sind. Also wenn ich einen Wert in Feld A auswähle, will ich in Feld B nur nur Werte auswählen können, die von dem Wert in A abhängen.
Z.B. hab ich Abteilungen mit verschiedenen Mitarbeitern. Wenn ich in A die Abteilung auswähle, will ich in B nur die Mitarbeiter aus dieser Abteilung auswählen können.
Hab ich mit dem Abfragekriterium Formular!Hauptformular!Unterformular!FeldA realisiert und tut auch beim Einfügen.
Jetzt will ich aber nachträglich was ändern, d.h. ich wähl die Abteilung (Feld A) nicht neu aus, sondern nur den Mitarbeiter (Feld B). Dabei zeigt er mir aber immer nur die Mitarbeiter der ersten Abteilung im Formular an.

Mein 2. Versuch war, im Ereignis Enter die RowSource zu setzen. Dann krieg ich zwar die richtige Auswahl, aber die bisher ausgewählten Daten verschwinden einfach.

Wer kann mir helfen?

Elke

Hallo Elke,

Jetzt will ich aber nachträglich was ändern, d.h. ich wähl die
Abteilung (Feld A) nicht neu aus, sondern nur den Mitarbeiter
(Feld B). Dabei zeigt er mir aber immer nur die Mitarbeiter
der ersten Abteilung im Formular an.

Wenn im Feld A die erste Abteilung angezeigt wird, ist doch logisch, daß dann im zweiten Feld nur die Mitarbeiter der ersten Abteilung angezeigt werden, oder hab ich da jetzt was falsch verstanden?

Solltest Du das andersherum gemeint haben (also bei Neuauswahl der Abteilung werden nur die Mitarbeiter der zuerst gewählten Abteilung angezeigt), hier die Lösung dazu:

In den Eigenschaften von Feld A, Ereignis „bei Änderung“ ein Makro einfügen. Aktion „AktualisierenDaten“, Steuerelementname ist dann Feld B.

So wird nach Änderung der Abteilung die Abfrage neu ausgefüht und die entsprechenden Mitarbeiter im Feld B angezeigt.

Hoffentlich hilft Dir das weiter.

Grüße,
Kerstin

Hallo Elke,

Wenn im Feld A die erste Abteilung angezeigt wird, ist doch
logisch, daß dann im zweiten Feld nur die Mitarbeiter der
ersten Abteilung angezeigt werden, oder hab ich da jetzt was
falsch verstanden?

Solltest Du das andersherum gemeint haben (also bei Neuauswahl
der Abteilung werden nur die Mitarbeiter der zuerst gewählten
Abteilung angezeigt), hier die Lösung dazu:

In den Eigenschaften von Feld A, Ereignis „bei Änderung“ ein
Makro einfügen. Aktion „AktualisierenDaten“, Steuerelementname
ist dann Feld B.

So wird nach Änderung der Abteilung die Abfrage neu ausgefüht
und die entsprechenden Mitarbeiter im Feld B angezeigt.

Hoffentlich hilft Dir das weiter.

Grüße,
Kerstin

Hallo Kerstin

Danke für die Antwort, aber beim Einfügen tut es ja. Das Problem ist, dass es nicht tut, wenn ich nachträglich was ändern will. D.h. Feld A wird NICHT geändert, deshalb geht es auch nicht mit dem Ereignis „beim Ändern“. Ich lass also Feld A, so wie es ist und will bloss Feld B ändern. Und an der Stelle krieg ich dann nicht die Mitarbeiter von der Abteilung in Feld A vom aktuellen Datensatz, sondern die Mitarbeiter der Abteilung, die im allerersten Datensatz steht oder in dem Datensatz, den ich zuletzt bearbeitet habe.
Hört sich kompliziert an, ich weiss.

Hoffe, Du verstehst was ich meine.

Grüße,
Elke

Hallo,

wenn ich recht verstehe, möchtest Du den Inhalt von Kombinationsfeld A in Abhängigkeit von Kombinationsfeld B auswählen und das für jeden Datensatz im Endlosformular.

Ich würde dazu das Ereignis Current (BeimAnzeigen) verwenden:

„Das Ereignis Current tritt ein, wenn der Fokus auf einen Datensatz gesetzt wird, der somit zum aktuellen Datensatz wird. Es tritt außerdem ein, wenn das Formular aktualisiert bzw. erneut abgefragt wird.“

Im Ereignis B auslesen und in Abhängigkeit davon die Datenquelle von A manipulieren.

ujk

Hi Elke,

ich glaub ich hab verstanden, worum es geht. Hab das Formular jetzt mal selbst „gebaut“ und auch genau Dein Problem festgestellt.

Aber mit meiner ersten Lösung lag ich gar nicht sooo verkehrt, nur daß das Makro ausgeführt werden muß, sobald Feld B den Fokus erhält.

Also folgende Lösung:

In den Eigenschaften von Feld B, Ereignis „bei Fokuserhalt“ ein Makro hinterlegen. Aktion des Makros ist wie gehabt „AktualisierenDaten“ und Steuerelementname ist Feld B.

Grüße,
Kerstin

Danke euch beiden

Habe bei Ereignis Current die RowSource neu befüllt, so hats funktioniert.
Jetzt habe ich aber ein anderes Problem:
Wenn ich mit dem Formular arbeite und bearbeite einen Datensatz, geht mir die Anzeige des Feldes B der anderen Datensätze verloren, aber nur diejenigen, die einen anderen Wert in Feld A haben wie der aktuelle Datensatz. Praktisch mit dem Klick sind die Werte verschwunden. sie bleiben in der Tabelle erhalten, aber die Anzeige geht nicht mehr. Erst wenn man diese Datensätze wieder anklickt, dann verschwinden aber wieder andere.
Es klingt so, als würde mit dem Befüllen der RowSource nicht nur der aktuelle Datensatz befüllt, sondern alle Datensätze, und bei den anderen gibt es die Einträge ja nicht.

Wenn es nicht verständlich formuliert war, schicke ich gern einen Screenshot.

Vielen Dank schon mal,
Elke

Hallo,

das ist ein Problem bei Endlosformularen, weil das Steuerelement (Kombinationsfeld) für Access in allen Datensätzen einunddasselbe ist.

ujk

Hallo,

das ist ein Problem bei Endlosformularen, weil das
Steuerelement (Kombinationsfeld) für Access in allen
Datensätzen einunddasselbe ist.

Oh, das ist ja doof.
Kann man das irgendwie umgehen? Wahrscheinlich nicht ohne größeren Aufwand, oder?

Elke