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
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.requeryEigentlich 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!
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
Hier kannst du nachlesen, wie in Access die Referrer aufgebaut sind:
http://access.mvps.org/access/forms/frm0031.htm (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