PDA

Vollständige Version anzeigen : Aktualisierungsprobleme mit DSum


WG
29.06.2001, 12:56
Tagchen,mal wieder ich
Ich habe in einem Formular ein Feld, in dem ich ein Wert hineinschreibe. In einem Ereignisprozedur im Eigenschaftsfeld "Nach Aktualisieren" wird mit DSum alle Werte aus diesem Feld addiert und in einem anderen Feld von einem anderen Wert abgezogen. Das geht soweit gut. Wenn ich aber mal kein Wert hineinschreibe entsteht chaos. Nur wenn ich die Zahlen paarmal wieder in die Felder hineinschreiben, faengt die Prozedur wieder richtig zu rechnen. So siehts ungefaehr aus:
Feld1 Feld2
10 1000
20 980
0 0 ' damit koennte ich leben
30 980 'hier sollte 950 stehen

Wenn ich vorher nochmals ueber verschiedene andere Felder springe und die Zahl 30 nochmals hineinschreibe, wird ein richtiges Ergebnis gebracht.

Habe wohl irgendein Prinzip nicht beachtet.
Gruss
Tom

marmic55
29.06.2001, 13:14
Hallo,

Nach Aktualisierung:

If not isnull(Feldname) then
.....Mach, was ich Dir sage
end if

Vielleicht hilft das etwas weiter.


Gruß
Michael

WG
29.06.2001, 14:14
Hier mein Code. Die Prozedur hat das Problem, den aktuellen Feldwert im Feld "Porto" zu beruecksichtigen und dies nach verlassen des Feldes Poto in das Feld "Regestfeld" zu schreiben bzw berechnen.

Private Sub Regestfeld_Enter()
Dim curX As Currency
Dim IDjetzt As Integer
If Me.ID = Null Then Exit Sub

IDjetzt = Me.ID 'gibt den Feldwert des Autowertfeldes zurueck
IDjetzt = IDjetzt '- 1

curX = DSum("[Porto]", "Porto", "[ID] = " & IDjetzt) 'die Portosumme bis zum aktuellen Record
Me.Regestfeld = DFirst("[Regestriermaschine]", "Porto") - curX 'Zieht die Portosumme vom 1. Frankierwert ab
End Sub

WG
29.06.2001, 15:28
Juhuuu,
mal eben was kuehles zu trinken organisiert, fuer heute abend ein date arrangiert und prompt die loesung gefunden. Hier damit ihr auch informiert seid:
1 Fehler:
IDjetzt = IDjetzt + 1 ' muss um eins sich erhoehen

curX = DSum("[Porto]", "Porto", "[ID] < " & IDjetzt) ' muss natuerlich bis zum ID addieren, sprich <

und zum Schluss
me.Refresh vor End Sub einfuegen
schoenes Wochenende noch
Tom