Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Listenfeld soll ersten Datensatz auswählen

Begonnen von sistancy, September 03, 2022, 14:22:00

⏪ vorheriges - nächstes ⏩

sistancy

Guten Tag zusammen,

ich besitze in meinem Formular 2 Listenfelder. Die Auswahl des ersten filtert die Auswahl im zweiten. Zum zweiten Listenfeld habe ich dann gebundene Textfelder im Formular, die dann die Informationen zu dem Datensatz anzeigen, den ich im zweiten Listenfeld angeklickt habe. Das funktioniert auch soweit gut...

Jetzt möchte ich aber, dass im zweiten Listenfeld quasi immer, zu Beginn, der erste Datensatz ausgewählt wird, wenn ich das erste Listenfeld ändere.
Momentan ist das so, dass die Informationen in den Textfeldern bestehen bleiben, obwohl ich im ersten Listenfeld meine Auswahl bereits geändert habe und dadurch der passende Datensatz im zweiten Listenfeld gar nicht mehr angezeigt wird

Private Sub Listenfeld1_AfterUpdate
Me!Listenfeld2 = Me!Listenfeld2.ItemData(0)
...

Das bringt mich beispielsweise nicht weiter da hier der Datensatz nicht tatsächlich ausgewählt wird, sondern nur markiert wird...

Ich überlege momentan das mit DoCmd.GoToRecord zu machen aber kriege es nicht umgesetzt :(

Vielen Dank schonmal an alle die mir helfen wollen :)

DF6GL

Hallo,

Zitatdie dann die Informationen zu dem Datensatz anzeigen, den ich im zweiten Listenfeld angeklickt habe.


das zeigt Dir ja schon den Lösungsweg:


Schreibe in die "Listenfeld1_AfterUpdate"-Ereignisprozedur zusätzlich auch das hinein, was beim "Klick"  (vermutlich AfterUpdate-Ereignis des 2. LF) steht..
D. h., es wird dort das Formular  mit dem markierten Eintrag gefiltert.



Beaker s.a.

Hallo,
ZitatD. h., es wird dort das Formular  mit dem markierten Eintrag gefiltert.
Die Markierung muss dann aber auch durch den Code erfolgen
Me!ListfeldName = Me!ListfeldName.ItemData(0)
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

sistancy

Okay ich verstehe was du meinst, allerdings weiß ich nicht wie ich den letzten Teil(Gelb) dann umändern soll.
Ich habe den VBA Code der beiden Listenfelder hier mal angehangen (lstSachgebiet = Listenfeld1, lstFormel = Listenfeld2)
Vielleicht fällt euch etwas ein...

Danke schonmal für eure Hilfe!!

sistancy

Okay ganz easy, habe das so jetzt angegeben und es funktioniert:

DoCmd.SearchForRecord , "", acFirst, "[for_id] = " & Me!lstFormel.ItemData(0)

Danke euch für eure Hilfe! :)

Beaker s.a.

Hallo,
Noch ein paar Anmerkungen.
Poste Code bitte mit Tags, Bilder abschreiben ist nicht so prickelnd.
Zu deinem Code.
Wenn du ein Objekt hast (hier dein Formular), das bereits
entsprechende Methoden zur Verfügung stellt, musst du nicht
ein zweites Objekt (hier DoCmd) bemühen.
Private Sub lstFormel_AfterUpdate()
Me.Recordset.FindFirst "for_id = " & Me.lstFormel.Value
(Das ist eh das aktuelle Control, sonst würde ja das Event gar nicht
ausgelöst werden.
Das Gleiche dann bei "lstSachgebiet_AfterUpdate".

gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)