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