PDA

Vollständige Version anzeigen : Frage zur Formel


mhoffmann78
10.10.2003, 10:13
Hallo Leute,

folgende Formel verwende ich um einen Kontostand auszurechnen. Dies ist nur leider nicht ganz richtig vom Ergebnis her.

Hier ersteinmal die Formel:

Me.Bestand = Me.[Geldeingang] + Me.[Geldausgang Firma] + Me.[Geldausgang Globus] + Me.[Kontokosten] + Me.[einbehaltenes Geld]
DoCmd.RunCommand acCmdSaveRecord


Jetzt kommt bei Bestand allerdings nur das Ergebnis der aktuellen Zeile.
Wie müsste ich den die Formel änder um wie folgt zu rechen:

Me.Bestand = Me.[Geldeingang] + Me.[Geldausgang Firma] + Me.[Geldausgang Globus] + Me.[Kontokosten] + Me.[einbehaltenes Geld] + Me.[Bestand(eine Zeile zuvor)]


Marko

Hütti
10.10.2003, 10:20
wenn deine datensätze eine eindeutige, fortlaufende id habe, kannst du folgendes machen

me.bestand=..+..+...+dlookup("[bestand]","DEINETABELLE","[ID]=" &me.id-1)

mhoffmann78
10.10.2003, 10:31
Danke Hütti für deine schnelle Antwort n ur funktioniert dies leider nicht

Me.Bestand = Me.[Geldeingang] + Me.[Geldausgang Firma] + Me.[Geldausgang Globus] + Me.[Kontokosten] + Me.[einbehaltenes Geld] + domwert("[Bestand]";"Verrechnungskonto";"[ID]=" me.id-1)
DoCmd.RunCommand acCmdSaveRecord


Access bringt eine Fehlermeldung.
Fehler beim Kompilieren
Erwartet: Listentrennzeichen oder )


bei: domwert("[Bestand]";"Verrechnungskonto";"[ID]=" me.id-1)

Marko

Hütti
10.10.2003, 10:34
ja, sorry.

hatte ich schon geändert. hatte vergessen, das du unter vba bist.

muss sein (oder siehe oben)
dlookup("[bestand]","DEINETABELLE","[ID]=" &me.id-1)

also statt ";" --> "," und ein "&" vor me.id (schlampig, schlampig)... :)

mhoffmann78
10.10.2003, 10:55
jetzt bekomm ich wieder ne Fehlermeldung. Diesmal betrifft es allerdings
Me.[einbehaltenes Geld]

die Formel sieht jetzt so aus:

Me.Bestand = Me.[Geldeingang] + Me.[Geldausgang Firma] + Me.[Geldausgang Globus] + Me.[Kontokosten] + Me.[einbehaltenes Geld] + dlookup("[Bestand]","Verrechnungskonto","[ID]=" &me.id-1)
DoCmd.RunCommand acCmdSaveRecord

Hütti
10.10.2003, 10:59
hm,

hat die formel denn vorher fuktioniert??? ihc weiss jetzt nicht, was du da an welcher stelle machst....

racoon0506
10.10.2003, 11:01
Und welche Meldung kommt jetzt?
Kann es sein, dass gelegentlich in einem der verwendeten Felder NULL steht? (also gar kein Inhalt vorhanden ist...)

mhoffmann78
10.10.2003, 11:18
die Felder sind alle Standardmäßig auf 0.
Standardwert=0 ist bei den Feldeigenschaften der Db eingestellt.

Die Fehlermeldung lautet jetzt: Methode oder Datenobjekt nicht gefunden

Gruß Marko

racoon0506
10.10.2003, 11:22
Zunächst würde ich mal (der Richtigkeit halber, auch wenn Acc. dies nicht bemängelt!) die Punkte gegen Ausrufezeichen ersetzen. (Siehe FAQ 6.3 Punkt und Rufzeichen (http://www.donkarl.com/FAQ/FAQ6VBA.htm#6.3) )
Dann solltest du überprüfen, ob das entsprechende Feld im Formular auch tatsächlich "einbehaltenes Geld" heisst.... Die Fehlermeldung deutet darauf hin, dass dieses Feld nicht existiert bzw. das Feld eine andere Bezeichnung hat.....

mhoffmann78
10.10.2003, 11:26
ich habs gelöst.

so funktioniert es:

Me.Bestand = (Nz(Me.[Geldeingang])) + (Nz(Me.[Geldausgang Firma])) + (Nz(Me.[Geldausgang Globus])) + (Nz(Me.[Kontokosten])) + (Nz(Me.[einbehaltenes Geld])) + DLookup("(Nz([Bestand]))", "Verrechnungskonto", "[ID]=" & Me.[id] - 1)
DoCmd.RunCommand acCmdSaveRecord