Supportnet / Forum / Datenbanken
Mehrere Werte vergleichen
Frage
Hallo zusammen!
Ich möchte, dass in meinem Formular per Mausclick verschiedene Kontrollen durchgeführt werden!
Ist ein Wert größer oder kleiner als der Sollwert oder steigen 7 Werte hintereinander an oder fallen sie ab.
Dazu habe ich mir folgende Funktion gebastelt.
[code] Private Sub Elementname_Click()
Dim R As Recordset
Dim SQL As String
Dim E As Integer
Dim W As Double
Dim F As Integer
Dim S As Integer
Dim D As Integer
Dim N As Integer
Dim Test As Long
E = Me!Element_ID
SQL = "SELECT Element_ID,Istwert,Istwert_ID,Min,Max,Kontrolliert,Elementname,Datum,Sollwert,Steigung FROM qryDatum WHERE Element_ID=" & E
Set R = CurrentDb.OpenRecordset(SQL)
If R.BOF = True Then Exit Sub
R.MoveFirst
Do
If R!Kontrolliert = True Then
R.MoveNext
ElseIf R!Istwert < R!Min Or R!Istwert > R!Max Then
MsgBox "Der am " & R!Datum & " analysierte " & R!Elementname & "-Wert liegt außerhalb des Toleranzbereichs!", vbCritical
Else
R.MoveNext
End If
Loop Until R.EOF = True
R.MoveFirst
Do
For D = 1 To 7
If R!Istwert < R!Sollwert Then
R.MoveNext
Else
Exit For
End If
If D = 7 Then
MsgBox D & " Werte sind über dem Sollwert!", vbCritical
End If
Next D
R.MoveNext
Loop Until R.EOF = True
R.MoveFirst
Do
For N = 1 To 7
If R!Istwert > R!Sollwert Then
R.MoveNext
Else
Exit For
End If
If N = 7 Then
MsgBox N & " Werte sind unter dem Sollwert!", vbCritical
End If
Next N
R.MoveNext
Loop Until R.EOF = True
R.MoveFirst
Do
For F = 1 To 7
W = Nz(DLookup("Istwert", "qrySteigung", "[Steigung]=" & R!Steigung + 1), 0)
If W > R!Istwert Then
R.MoveNext
Else
Exit For
End If
If F = 7 Then
MsgBox F & " Werte steigen an!", vbCritical
End If
Next F
R.MoveNext
Loop Until R.EOF = True
R.MoveFirst
Do
For S = 1 To 7
W = Nz(DLookup("Istwert", "qrySteigung", "[Steigung]=" & R!Steigung + 1), 0)
If W < R!Istwert Then
R.MoveNext
Else
Exit For
End If
If S = 7 Then
MsgBox S & " Werte fallen ab!", vbCritical
End If
Next S
R.MoveNext
Loop Until R.EOF = True
R.close
End Sub
[/code]
Leider wird immer nur eine Do Loop Schleife durchlaufen. Wie kann ich den Code so ändern, dass der komplette Sub durchlaufen wird?
Ich bitte euch um eure Unterstützung.
Danke
the..dude

