Neuigkeiten:

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

Mobiles Hauptmenü

Formular aktualisiert nicht

Begonnen von Thüringer, August 28, 2026, 09:52:25

⏪ vorheriges - nächstes ⏩

Thüringer

Die Frage: Der Befehl speichert und schließt das formluar frm_liste_neu. Aber er refresht nicht frm_liste.

frm_liste befindet sich als Unterformular in frm_frame und heißt dort frm_liste.

Was muss man anstelle von Forms.frm_liste.Requery schreiben?


Private Sub Befehl122_Click()
 On Error GoTo Err_Befehl122_Click
     DoCmd.Close acForm, "frm_liste_neu", acSaveYes
      Forms.frm_liste.Requery
     'Me!frm_frame.Form.Requery
     'Me!frm_frame.Form.Reload
Exit_Befehl122_Click:
     Exit Sub
Err_Befehl122_Click:
     'MsgBox Err.Description
     Resume Next
     Resume Exit_Befehl122_Click
End Sub

Knobbi38

Hallo,

es gibt zwei Dinge, die du bei Access beachten mußt:
  • Unterformulare erscheinen nicht in der Forms-Auflistung, könnenn also darüber nicht direkt angesprochen werden.
  • Access benennt ein SubForm-Control im Designer immer nach dem zugewiesenen Formular. Das muss man nachträglich ändern und dem SubForm-Control einen anderen Namen vergeben, z.B. mit einem Präfix "sub" oder "sfc", je nach Namenskonvention.

Aus dem o.a. folgt dann: wenn du ein Requery auf ein geladenes UF aus dem HF veranlassen möchtest, warum auch immer, kannst du das einfach über das Steuerelement (SubForm-Control) ansprechen:
me.<subformcontrolname>.form.requery
Eigentlich sollte das aber nicht notwendig sein.

Knobbi38

PS:
ZitatResume Next
     Resume Exit_Befehl122_Click
Der Code ist leider fehlerhaft. "Resume Next" gehört da nicht hin und kann u.U. eine Endlosschleife verursachen!

Thüringer


Mein Text sieht jetzt so aus. Er gibt an, dass er "ufofrm_liste" nicht finden kann. Das SubForm-Control heißt aber so. Das darin befindliche Formular ist "frm_liste" und soll aktualsiert werden. Was kann falsch sein?

Private Sub Befehl122_Click()
 On Error GoTo Err_Befehl122_Click
     DoCmd.Close acForm, "frm_liste_neu", acSaveYes
     Me.ufofrm_liste.Form.Requery
Exit_Befehl122_Click:
     Exit Sub
Err_Befehl122_Click:
     Resume Exit_Befehl122_Click
End Sub

Knobbi38

Hier kannst du nachlesen, wie in Access die Referrer aufgebaut sind:
http://access.mvps.org/access/forms/frm0031.htm

Wenn du  Me.ufofrm_liste.Form.Requery im HF aufrufst und ufofrm_liste sich im HF befindet, sollte das UF die Daten neu laden.

Und noch ein Tipp:
   DoCmd.Close acForm, "frm_liste_neu", acSaveYes

speichert nur die Änderungen eines Formulars im Entwurfsmodus, nicht die Daten!

Knobbi38


Beaker s.a.

Hallo,
DoCmd.Close acForm, "frm_liste_neu", acSaveYes
     Me.ufofrm_liste.Form.Requery
Probiere mal die Reihenfolge umzudrehen. Denn wenn der Vorgang
des Schliessens genau umgekehrt zum Öffnen (UFo -> HFo) abläuft
(habe jetzt keine Lust das auszuprobieren/nachzuschlagen) ist
das UFo schon nicht mehr geladen, und die Referenz läuft ins
Leere.

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)

Thüringer

Zitat von: Knobbi38 am August 28, 2026, 18:57:47Hier kannst du nachlesen, wie in Access die Referrer aufgebaut sind:
http://access.mvps.org/access/forms/frm0031.htm

Wenn du  Me.ufofrm_liste.Form.Requery im HF aufrufst und ufofrm_liste sich im HF befindet, sollte das UF die Daten neu laden.

Und noch ein Tipp:
   DoCmd.Close acForm, "frm_liste_neu", acSaveYes

speichert nur die Änderungen eines Formulars im Entwurfsmodus, nicht die Daten!

Knobbi38



Und wie müsste der Befehl lauten, wenn ich "Me.ufofrm_liste.Form.Requery" aus einem anderen Formular heraus aufrufe? Mir ist gerade aufgefallen, dass der Befehl in einem Popup steht, daher funktioniert nicht.