Neuigkeiten:

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

Mobiles Hauptmenü

Aktualisierungsproblem im Unterformular

Begonnen von peter4400, Februar 25, 2025, 09:30:17

⏪ vorheriges - nächstes ⏩

peter4400

Hallo,
ich habe in meiner "Sitzungsprotokoll-Datenbank" ein Unterformular, das die Teilnehmer anzeigt, als m:n-Relation, es gibt tblSitzung, tblTeilnehmer und tblTeilnehmerZuSitzung, auf letzterer basiert das Ufo.
Die Teilnehmer werden über ein Popup ausgewählt, per SQL eingefügt und dann das Ufo mit requery aktualisiert. Das funktioniert einwandfrei - bloß nicht bei neuen Datensätzen. Füge ich Datensatz 21 ein, speichere ihn, füge dann die Teilnehmer hinzu, zeigt er mir immer erst die von Datensatz 20 an. Trotz requery. Warum bloß?

peter4400

Ergänzung, das Hauptformular befindet sich selbst als Unterformular in einem Navigationsformular von Access...

peter4400

okay, das Einzige was hilft scheint zu sein


    lngBookmark = Forms!frmNavigation!Navigationsunterformular.Form.ID
    Forms!frmNavigation!Navigationsunterformular.Form.Recordset.MoveFirst
    Forms!frmNavigation!Navigationsunterformular.Form.Recordset.FindFirst "ID = " & lngBookmark

irgendwie unschön, aber läuft...

Knobbi38

Hallo Peter,

du liest die aktuelle ID aus, anschließend positionierst du wieder auf die gleich ID und das soll helfen?

Möglicherweise passt da etwas anderes noch nicht.

Gruß
Knobbi38

peter4400

zwischendurch gehe ich ja noch zurück auf den ersten Datensatz. Ich weiß halt nicht, wie ich sonst das blöde Formular dazu bewegen soll, die Daten im Unterformular zu aktualisieren. was man sonst so findet über requery, me.dirty und ein paar andere Sachen ... nichts hilft.

Knobbi38

Ich lehne mich mal ganz weit aus dem Fenster, aber da scheint mir etwas nicht ganz i.O. zu sein.


PhilS

Zitat von: peter4400 am Februar 25, 2025, 14:19:47was man sonst so findet über requery, me.dirty und ein paar andere Sachen ... nichts hilft.
Du hast bei deinen Versuchen beachtet, dass, falls der Code im Hauptformular ist, du das Unterformular referenzieren musst?
Also:
Me.UnterformularSteuerelement.Form.Requery
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

peter4400

Zitat von: PhilS am Februar 25, 2025, 17:45:02Du hast bei deinen Versuchen beachtet, dass, falls der Code im Hauptformular ist, du das Unterformular referenzieren musst?
So einfach ist die Syntax leider nicht, wenn man ein Navigationssteuerelement verwendet, die Zeile lautet:
Forms!frmNavigation!Navigationsunterformular.Form!frmAnwesend.Form.Requery

Und sie funktioniert ja, bei meinen Testdatensätzen 1-30.
Sie funktioniert bloß nicht mehr, wenn ich auf "Neuer Datensatz" gehe, diesen speichere, so dass er eine Autowert-ID, hat, und dann die Teilnehmer einfügen will.

KonradR

Hallo Peter 4400,

Zitat von: peter4400 am Februar 25, 2025, 11:11:44lngBookmark = Forms!frmNavigation!Navigationsunterformular.Form.ID
    Forms!frmNavigation!Navigationsunterformular.Form.Recordset.MoveFirst
    Forms!frmNavigation!Navigationsunterformular.Form.Recordset.FindFirst "ID = " & lngBookmark
aus deinem Code kann ich leider nicht erkennen, ob deine Datensatzquelle für den Recordset eine Abfrage oder eine Tabelle ist. Du schreibst zwar, dass das UFO seine Datensatzquelle von  Tabelle "tblTeilnehmerZuSitzung" bekommt, aber gleichzeitig schreibst du auch, dass du die Daten per SQL einfügst. Mit SQL kannst du die angezeigten Daten ja auch anpassen und dann ist es eine Abfrage. Bei Abfragen, so habe ich das aus einem Videokurs von Lorenz Hölscher auf Linkedin gelernt, muss bevor die Requery-Methode ausgeführt wird, erstmal zum letzten und dann zum ersten Datensatz gesprungen werden. Bei Tabellen brauchts das wohl nicht.

peter4400

ja, guter Hinweis, Datenquelle ist ein Join aus tblTeilnehmer und tblTeilnehmerZuSitzung, weil ich ja die Namen anzeigen will und nicht nur die Fremdschlüssel-Long-Werte... aber trotzdem funktioniert die Requery-Methode ja, bloß leider nur *fast* immer