ACC2000: Berechnetes Formularfeld in Bericht verwenden

12/12/2007 - 18:08 von Michael Hessler | Report spam
Hallo,

aus einem Formular [Fplan] soll ein berechnetes Feld [MWsd] in
einem Bericht [Bplan] verwendet werden. Der Bericht wird
ausschließlich aus dem Formular heraus aufgerufen mit folgendem Code:
Forms![Fplan].Recalc
DoCmd.RunCommand acCmdSaveRecord
DoCmd.OpenReport "Bplan", acPreview, "",
"[Aplan]![ID]=[Forms]![Fplan]![ID]"

Nun ist augenscheinlich im Moment der Berichts-Öffnung der
Recalc- oder Save-Vorgang nicht beendet, das Feld MWsd ist leer.
Füge ich einen beliebigen Befehl, z.B. Beep, vor OpenReport ein
_und_ setze darauf einen Haltepunkt, erscheint der richtige Wert
auch im Bericht; anderenfalls bleibt das entsprechende Feld im
Bericht ebenfalls leer.

Wodurch wird das Problem ausgelöst und wie kann ich die
Datenübergabe zum Bericht sicherstellen?

Danke
Michael
 

Lesen sie die antworten

#1 Thomas Möller
12/12/2007 - 18:29 | Warnen spam
Hallo Michael,

Michael Hessler schrieb:
aus einem Formular [Fplan] soll ein berechnetes Feld [MWsd] in
einem Bericht [Bplan] verwendet werden. Der Bericht wird
ausschließlich aus dem Formular heraus aufgerufen mit folgendem Code:
Forms![Fplan].Recalc
DoCmd.RunCommand acCmdSaveRecord
DoCmd.OpenReport "Bplan", acPreview, "",
"[Aplan]![ID]=[Forms]![Fplan]![ID]"

Nun ist augenscheinlich im Moment der Berichts-Öffnung der
Recalc- oder Save-Vorgang nicht beendet, das Feld MWsd ist leer.
Füge ich einen beliebigen Befehl, z.B. Beep, vor OpenReport ein
_und_ setze darauf einen Haltepunkt, erscheint der richtige Wert
auch im Bericht; anderenfalls bleibt das entsprechende Feld im
Bericht ebenfalls leer.



als erstes möchte ich Dich fragen, ob es wirklich notwendig ist, dass Du
vor dem Ausdruck das Formular noch einmal neu berechnen làsst. Steht der
Wert für die MWSt da nicht schon drin? Dann könntest Du evtl. auf die
ersten beiden Zeilen deines Codes verzichten und das Problem stellt sich
erst gar nicht.
Eine andere Möglichkeit wàre, bereits bei einem anderen Ereignis dafür
zu sorgen, dass der richtige Wert im Formular angezeigt wird.

Wenn das aktualisieren des Formulars erforderlich ist, dann kannst Du
den Befehl >>DoEvents<< einfügen. Eventuell brauchst Du diesen auch zwei
oder drei mal. Da musst Du ggfs. etwas experimentieren.

HTH
Thomas

Homepage: www.Team-Moeller.de

Ähnliche fragen