Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Abfrage aktualisieren Basis Datumsfeld

Begonnen von gsaccess, April 20, 2023, 14:32:56

⏪ vorheriges - nächstes ⏩

gsaccess

Ich habe ein Formular(frmStundenanzeige) mit zwei Unterformularen. (siehe Bild)
Im oberen Unterformular(frm_qry_tStunden_AktuellerArbeitstag) werden die Stundendetails zu einem Arbeitstag dargestellt.
Im unteren Unterformular(frm_qry_Arbeitstage) kann der jeweils aktuelle Tag für die Bearbeitung ausgewählt werden.
Ich habe auch ein Feld im Formular für "Ausgewähltes Datum" eingefügt =[frm_qry_Arbeitstage].[Formular]![Arbeitstag]. Dieses wird immer automatisch aktualisiert, wenn ein Tag ausgewählt wird.

Leider muss ich immer auf den Aktualisierungsbutton klicken damit die Daten im oberen Unterformular aktualisiert werden. Code: Me.frm_qry_tStunden_AktuellerArbeitstag.Requery
Obwohl in der Abfrage des oberen Formulars beim Kriterium der Arbeitstag vom unteren Formular hinterlegt ist:
[frm_qry_Arbeitstage].[Formular]![Arbeitstag]
Ich habe auch versucht beim Feld mit dem aktuellen Datum nach Aktualisierung den Button Aktualisieren mit call anzusprechen. Das obere Unterformular wird aber nicht automatisch aktualisiert.

Warum wird das obere Unterformular nicht aktualisiert, egal ob ich beim Feld "Ausgewähltes Datum" (Bei Geändert, Nach Aktualisierung,..) den Code  Me.frm_qry_tStunden_AktuellerArbeitstag.Requery hinterlege.

Was mache ich hier falsch?

LG Günther

Beaker s.a.

Triggere dein Requery in der AfterUpdate-Prozedur des UFo bzw. des Textfeldes (s.u.).
Zitatden Code  Me.frm_qry_tStunden_AktuellerArbeitstag.Requery hinterlege.
Falsche Referenz
Me.frm_qry_tStunden_AktuellerArbeitstag.Form.Requery(unter der Voraussetzung, dass UFo und eingebettes Formular den gleichen Namen haben, -
siehe auch https://www.donkarl.com?FAQ4.2)
Zitatden Button Aktualisieren mit call anzusprechen
Das macht man nicht, Ereignisprozeduren werden nur durch das Eintreten des entsprechenden
Ereignisses ausgelöst. Da kannst du das .Requery doch auch direkt auslösen.
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)

gsaccess

Vielen Dank für die rasche Hilfe.

Wenn ich das Me.frm_qry_tStunden_AktuellerArbeitstag.Form.Requery beim Verlassen des Formulars oder auf den Button (Aktualisieren) beim Klicken lege funktioniert es problemlos.
Das Feld"Ausgewähltes Datum" (=([frm_qry_Arbeitstage].[Formular]![Arbeitstag]) wird aufgrund der Auswahl im Unterformular aktualisiert. Aber das Me.frm_qry_tStunden_AktuellerArbeitstag.Form.Requery bei after update des Feldes reagiert nicht.

LG Günther

Beaker s.a.

ZitatDas Feld"Ausgewähltes Datum" ... wird aufgrund der Auswahl im Unterformular aktualisiert. Aber das Me.frm_qry_tStunden_AktuellerArbeitstag.Form.Requery bei after update des Feldes reagiert nicht.
Dadurch wird "AfterUpdate" nicht ausgelöst. Aber an der Stelle, an der du das
Feld aktualisierst kannst du doch auch das .Requery auf das UFo auslösen. Von
da (unteres UFo) musst du allerdings über das HFo (Parent) referenzieren
Me.Parent.NameDesUFoControls.Form.Requery
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)

gsaccess

Danke für die Rückmeldung, aber ich bin in vba nicht so gut.

Ich habe deinen Code im Unterformular in dem das Datum eingegeben wird (dieses wird ja immer angeklickt, wenn eine Auswahl erfolgt), wie folgt eingegeben:
Me.Parent.frm_qry_tStunden_AktuellerArbeitstagControls.Form.Requery
Dann kommt die Fehlermeldung: Laufzeitfehler 2465 Anwendungs- oder objektorientierter Fehler.
Was mache ich hier noch falsch?

Beaker s.a.

Dies sollte dich auf die richtige Spur bringen.
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)

gsaccess

Hilft mir leider nicht weiter, da es nur um den Verweis zw. HF und UF geht.
Ich stehe aber im HF und aktualisiere dieses mit me.require
Dann kommt die Fehlermeldung, da der Datensatz ja richtigerwiese gelöscht ist.
Es geht also nur um die Unterdrückung der Fehlermeldung.

DF6GL

#7
Hallo,

Im Hauptformular:  Feld "Ausgewählter Arbeitstag"  :   Steuerelemeninhalt leer

und im 2. Unterform:


Sub Form_Current ()
 Me.Parent![Ausgewählter Arbeitstag] = Me!Arbeitstag
End Sub

und evtl. zusätzlich:
Sub Arbeitstag_AfterUpdate()
 Me.Parent![Ausgewählter Arbeitstag] = Me!Arbeitstag
End Sub


gsaccess

Ich werde wohl den Aktualisierungsbutton drücken müssen.
Beim Einbau deines Codes kommt nun folgender Fehler: siehe Anlage.