Hallo Rasta,
erstmal danke für deine Antwort. Die Werte die berechnet werden müssen also MJ+, MJ- und Datum kommen aus ner Abfrage. Das sieht z.B. so aus:
MJ+ , MJ- , Datum
1 , , 12.03.2005
, 0,5 , 24.09.2004
0,3, 1 , 11.06.2005
und ich möchte den Endstand pro Jahr berechnen. Wobei der Endstand von 2003 schon fest steht, also wird nicht noch berechnet. Die anderen Endstände aus den folgenden Jahren, bauen auf dem Endstand des Vorjahres auf...also
Endstand 2004= Endstand 2003 - ((Summe MJ+ 2004)-(Summe MJ- 2004)
usw.
In meinem Ergebnisformular habe ich drei textfelder:
1 für Summe MJ+, 1 für Summe MJ- und 1 für den Endstand.
und noch felder wo man entweder das jahr und/oder monat auswählt oder einen zeitraum.
Die Ergebnisse der Summen und des Endstandes sind natürlich dann abhängig von der Zeit, die man auswählt.
Hab auch schon versucht mit VB was basteln:
[Code]
Private Sub cmb_ausführen_Click()
Dim saldo As Variant
Dim jahr As Variant
Dim krit As String
Dim krit2 As String
Dim krit3 As String
Dim endstand As Variant
DoCmd.SetWarnings False
krit = "year(Datum)= com_jahr and month(Datum)= com_monat"
krit2 = "year(Datum)=com_jahr"
krit3 = "[Datum] between txt_von and txt_bis"
If opt_ein_jahr = True Then
If com_jahr = True And com_monat = True Then
Me.txt_aufbau = Nz(DSum("[MJ+]", Me.RecordSource, krit))
Me.txt_abbau = Nz(DSum("[MJ-]", Me.RecordSource, krit))
ElseIf com_jahr = True And com_monat.Value = "" Then
Me.txt_aufbau = Nz(DSum("[MJ+]", Me.RecordSource, krit2))
Me.txt_abbau = Nz(DSum("[MJ-]", Me.RecordSource, krit2))
saldo = Me.txt_aufbau - Me.txt_abbau
MsgBox saldo
End If
ElseIf opt_x_jahre = True Then
Me.txt_aufbau = Nz(DSum("[MJ+]", Me.RecordSource, krit3))
Me.txt_abbau = Nz(DSum("[MJ-]", Me.RecordSource, krit3))
Else
MsgBox "Wählen Sie die Zeit aus!"
End If
If Year(Datum) = 2003 Then
endstand = 4.43
Else
If IsNull(saldo) Then
endstand = endstand(Year(Datum) - 1)
Else
endstand = Nz(saldo) + endstand(Year(Datum) - 1)
End If
End If
End Sub
[/Code]
Die Summen von MJ+ und MJ- habe ich ja schon hingekriegt und funktioniert auch, aber das mit dem Endstand leider noch nicht.
Wenn ich das jetzt so ausführe kommt in der Zeile: "endstand = Nz(saldo) + endstand(Year(Datum) - 1)"
die Fehlermeldung: Typen unverträglich.
Hoffentlich kannste was mit dem Code anfangen.
Hilfe!
Gruß
Mishelle |