Ich habe mit diesem Problem allein zu kämpfen, dann mit etwas Hilfe, dann suchen Sie danach; aber ich hatte kein Glück. Also habe ich beschlossen zu fragen.
Ich habe zwei Formulare in Access 2007 können sie MainForm
und EntryForm
nennen.
MainForm
hat ein Unterformular und eine Schaltfläche. Die Schaltfläche öffnet den EntryForm
im Add-Modus. Was ich tun möchte, ist, wenn der EntryForm
den neuen Datensatz speichert, würde es das Unterformular in MainForm
aktualisieren (requery).
Ich habe diesen Setup-Code versucht
%Vor%Keiner dieser Versuche scheint zu funktionieren. Gibt es eine Möglichkeit, diese Anfrage zu stellen? Danke für die Hilfe im Voraus.
Nur ein Kommentar zur Methode, dies zu erreichen:
Sie machen Ihr EntryForm dauerhaft an das Formular gebunden, von dem Sie es anrufen. Ich denke, es ist besser, keine solchen Kontexte zu haben. Ich würde die requery aus der Save / Close-Routine entfernen und stattdessen die EntryForm modal mit dem Schalter acDialog öffnen:
%Vor%Auf diese Weise ist EntryForm nicht darauf angewiesen, in einem Kontext verwendet zu werden. Die Alternative besteht darin, EntryForm mit etwas zu komplizieren, das weiß, welche Form es geöffnet hat und was abgefragt werden muss. Ich denke, es ist besser, diese Art von Dingen so nahe wie möglich am Kontext zu halten, in dem sie verwendet wird, und den Code der aufgerufenen Form so einfach wie möglich zu halten.
Vielleicht ist ein Grundsatz hier, dass jedes Mal, wenn Sie ein Formular mit der Forms-Sammlung aus einem anderen Formular erneut anfordern, es ein gutes Anzeichen dafür ist, dass etwas an Ihrer Architektur nicht stimmt - das sollte meiner Meinung nach selten passieren.
Ich habe oben mehrere Lösungen versucht, aber keines hat mein Problem gelöst. Lösung zum Aktualisieren eines Teilformulars in einem Formular nach dem Speichern von Daten in der Datenbank:
Me formname.Requery
Es hat gut für mich funktioniert. Viel Glück.
Beim Schließen und Öffnen führt das Hauptformular normalerweise alle zugehörigen Abfragen (einschließlich der Unterformular-bezogenen) durch. Ich hatte ein ähnliches Problem und löste es, indem ich die folgende Schaltfläche zum Speichern der Befehlsschaltfläche beim Klickereignis hinzufügte.
%Vor%Tags und Links vba forms ms-access access-vba