Option Compare Database Option Explicit Private Sub BOk_Click() Dim a(0 To 5) As Double Dim g(0 To 5) As Double Dim o(0 To 5) As Double Dim i As Integer Dim aznr1 As Long Dim QSNR1 As Long Dim SNR1 As String Dim SANR1 As String Dim start1 As Long Dim gebunden1 As Integer Dim maxreihe As Integer Dim Oechsle1 As Long Dim db1 As Database Dim rs1 As Recordset aznr1 = Forms!FAuszahlung!TAZNR SNR1 = Forms!FAuszahlung!TSNR gebunden1 = Forms!FAuszahlung!TGebunden If IsNull(Forms!FAuszahlung!TSANR) Then SANR1 = "NULL" Else SANR1 = "'" + Forms!FAuszahlung!TSANR + "'" End If maxreihe = 0 If Not IsNull(TO1) Then o(1) = TO1 a(1) = TA1 g(1) = TG1 maxreihe = 1 End If If Not IsNull(TO2) Then o(2) = TO2 a(2) = TA2 g(2) = TG2 maxreihe = 2 End If If Not IsNull(TO3) Then o(3) = TO3 a(3) = TA3 g(3) = TG3 maxreihe = 3 End If If Not IsNull(TO4) Then o(4) = TO4 a(4) = TA4 g(4) = TG4 maxreihe = 4 End If If Not IsNull(TO5) Then o(5) = TO5 a(5) = TA5 g(5) = TG5 maxreihe = 5 End If If maxreihe = 0 Then MsgBox "Sie müssen zumindest die Parameter für Reihe 1 eingeben!", vbCritical Exit Sub End If Set db1 = CurrentDb Set rs1 = db1.OpenRecordset("SELECT * FROM TAuszahlungSorten WHERE AZNR=" + Format(aznr1) + " AND SNR='" + Format(SNR1) + "' AND Gebunden=" + Format(gebunden1) + " AND SANR=" + SANR1) While Not rs1.EOF rs1.Edit Oechsle1 = rs1!Oechsle i = maxreihe While i > 0 And Oechsle1 < o(i) i = i - 1 Wend If i > 0 Then rs1!Betrag = g(i) + (Oechsle1 - o(i)) * a(i) Else rs1!Betrag = 0 End If rs1.Update rs1.MoveNext Wend rs1.Close 'Parameter sichern If Not IsNull(TO1) Then SetParameter "AuszahlungParameterReihe1OechsleStart", TO1 If Not IsNull(TO2) Then SetParameter "AuszahlungParameterReihe2OechsleStart", TO2 If Not IsNull(TO3) Then SetParameter "AuszahlungParameterReihe3OechsleStart", TO3 If Not IsNull(TO4) Then SetParameter "AuszahlungParameterReihe4OechsleStart", TO4 If Not IsNull(TO5) Then SetParameter "AuszahlungParameterReihe5OechsleStart", TO5 If Not IsNull(TG1) Then SetParameter "AuszahlungParameterReihe1Grundwert", TG1 If Not IsNull(TG2) Then SetParameter "AuszahlungParameterReihe2Grundwert", TG2 If Not IsNull(TG3) Then SetParameter "AuszahlungParameterReihe3Grundwert", TG3 If Not IsNull(TG4) Then SetParameter "AuszahlungParameterReihe4Grundwert", TG4 If Not IsNull(TG5) Then SetParameter "AuszahlungParameterReihe5Grundwert", TG5 If Not IsNull(TA1) Then SetParameter "AuszahlungParameterReihe1Anstieg", TA1 If Not IsNull(TA2) Then SetParameter "AuszahlungParameterReihe2Anstieg", TA2 If Not IsNull(TA3) Then SetParameter "AuszahlungParameterReihe3Anstieg", TA3 If Not IsNull(TA4) Then SetParameter "AuszahlungParameterReihe4Anstieg", TA4 If Not IsNull(TA5) Then SetParameter "AuszahlungParameterReihe5Anstieg", TA5 DoCmd.Close Forms!FAuszahlung!FUnter1.Requery End Sub Private Sub Form_Open(Cancel As Integer) Dim v v = GetParameter("AuszahlungParameterReihe1OechsleStart") If Not IsNull(v) Then TO1 = v v = GetParameter("AuszahlungParameterReihe2OechsleStart") If Not IsNull(v) Then TO2 = v v = GetParameter("AuszahlungParameterReihe3OechsleStart") If Not IsNull(v) Then TO3 = v v = GetParameter("AuszahlungParameterReihe4OechsleStart") If Not IsNull(v) Then TO4 = v v = GetParameter("AuszahlungParameterReihe5OechsleStart") If Not IsNull(v) Then TO5 = v v = GetParameter("AuszahlungParameterReihe1Grundwert") If Not IsNull(v) Then TG1 = v v = GetParameter("AuszahlungParameterReihe2Grundwert") If Not IsNull(v) Then TG2 = v v = GetParameter("AuszahlungParameterReihe3Grundwert") If Not IsNull(v) Then TG3 = v v = GetParameter("AuszahlungParameterReihe4Grundwert") If Not IsNull(v) Then TG4 = v v = GetParameter("AuszahlungParameterReihe5Grundwert") If Not IsNull(v) Then TG5 = v v = GetParameter("AuszahlungParameterReihe1Anstieg") If Not IsNull(v) Then TA1 = v v = GetParameter("AuszahlungParameterReihe2Anstieg") If Not IsNull(v) Then TA2 = v v = GetParameter("AuszahlungParameterReihe3Anstieg") If Not IsNull(v) Then TA3 = v v = GetParameter("AuszahlungParameterReihe4Anstieg") If Not IsNull(v) Then TA4 = v v = GetParameter("AuszahlungParameterReihe5Anstieg") If Not IsNull(v) Then TA5 = v End Sub