Aktualisierung von Formularen in Access 2007

Hallo !

Ich habe ein Hauptformular mit Auftragsdaten. Mit Hilfe eines eingeblendeten Unterformulars erzeuge ich in der Verarbeitung einen neuen Satz für das Hauptformular. Nach dieser Verarbeitung schliesst sich das Unterformular (wird ausgeblendet). Um nun den neuen Satz zu sehen, muss ich erst das Hauptformular schliessen und wieder neu öffen, den neuen Satz auswählen und dann sehe ich Ihn. Der Wunsch wäre nun, gleich nach der Erzeugung und dem Ausblenden des Unterformulars, soll der neue Satz angezeigt werden.

Gedanken :
Ich würde hier einen Commit sehen, damit der Satz weggeschrieben wird, aber in Access muss man da wohl erst eine Transaktion starten, damit er einen Commit kennt. Die Verarbeitung in dem Unterformular ist aber so komplex, dass ich nicht weiss, wie ich da eine Transaktion drumrum setzen soll.

Hallo,
da kann ich im Moment nicht weiterhelfen. Tut mir leid.

für Access2000+2003 verwende ich den Befehl
Refresh und
Requery
diesen einen oder beide Befehle hinter den Code „neuen Satz einfügen“ eingeben. Am besten testen mit einen oder beide Befehle

Antwort:
Methoden wie „Requery“ oder „Refresh“ beziehen sich immer auf das aktuelle Formular und werden nicht innerhalb der Datenbank an andere Objekte weitergegeben. Um das Problem zu lösen, müssen Sie das zu aktualisierende Formular explizit adressieren. Dazu nehmen Sie in die Ereignisprozedur „Nach Aktualisierung“ des Formulars, von dem die Änderungen ausgehen, die folgende Anweisung auf:

Forms(„FormularName“).Requery

Für „FormularName“ geben Sie den Namen das zu aktualisierenden Formulars an. Sind mehrere Formulare geöffnet, verwenden Sie einfach mehrere gezeigten Anweisungen mit den entsprechenden Formularnamen:

Forms(„Artikel“).Requery
Forms(„Bestellungen“).Requery

Hi, Christof,
versuchs mal mit diesem Makro:
Docmd.RunCommand acCmdSaveRecord beim Ereignis Nach Datenänderung. Auch mit der Methode Me!Requery kann es klappen

Gruß
Eckart

Hallo Christof,
ich muss erstmal vorausschicken, dass ich mit Access 2007 noch nie gearbeitet habe. Ich kannte mich mit 1999 und 2003 ganz gut aus, aber nachdem unser Projekt inzwischen problemlos läuft, habe ich seit mindestens 5 Jahren nix mehr (also GAR NIX mehr) mit Access gemacht.
Sei’s drum. Die Idee mit dem „commit zu Fuß“ finde ich nicht so gut, denn da könnte dir Access (2003) ziemlich dazwischenfunken. Soweit ich mich erinnern kann, wird aber automatisch ein commit abgesetzt, wenn du ein Formular schließt (nicht ausblendest). Die einfachste Lösung wäre aus meiner Sicht also, das Unterformular wirklich zu schließen. Möglicherweise braucht es dann im Hauptformular noch so etwas wie „refresh form“ oder so ähnlich.
Erschieß mich aber bitte nicht, wenn das in 2007 ganz anders läuft - siehe oben.
Ich wünsche dir trotzdem viel Erfolg!
Gruß
Burkhard