Я пытаюсь измерить продолжительность между двумя обновлениями.уже есть таблица, которая отслеживает «lastvalue», «newvalue» и «updatetime».Мой способ состоит в том, чтобы искать объекты, которые удовлетворяют условиям, и назначать соответствующие времена обновления для переменных, а затем вычислять.Однако мои циклы for не работают, они выполняются только один раз.Я новичок в access-vba и использую debug.prints, чтобы увидеть, как все меняется (они постоянны).Ниже мой код, спасибо
Private Sub olcum()
Dim gs As Long
Dim db As Database
Dim rs As Recordset
Dim pt As Date
Dim ct As Date
Dim pc As String
Dim cc As String
Dim id As Integer
Dim i As Integer
Dim l As Integer
Dim k As Integer
'Dim a As Index
Dim strMessage As String
Set db = CurrentDb
Set rs = db.OpenRecordset("GecenSure", dbOpenSnapshot)
pc = "acilmasi bekleniyor"
cc = "onayda"
rs.MoveFirst
For i = 0 To (rs.RecordCount - 1)
strMessage = "Burada: " & (rs.AbsolutePosition + 1)
Debug.Print (strMessage)
'Set a = rs.AbsolutePosition
'Debug.Print (a)
id = rs.Fields("Kimlik")
rs.MoveFirst
For l = 0 To (rs.RecordCount - 1)
strMessage = "Burada: " & (rs.AbsolutePosition + 1)
Debug.Print (strMessage)
If (rs.Fields("Kimlik") = id) And (rs.Fields("PreviousCase") = pc) Then
pt = rs.Fields("UpdateTime")
Else
End If
For k = 0 To (rs.RecordCount - (1 + l))
strMessage = "Burada: " & (rs.AbsolutePosition + 1)
Debug.Print (strMessage)
'If (rs.Fields("Kimlik") = id) And (rs.Fields("CurrentCase") = cc) Then
'Debug.Print "rs.AbsolutePosition"
If (rs.Fields("Kimlik") = id) And (rs.Fields("PreviousCase") = cc) Then
ct = rs.Fields("UpdateTime")
Else
End If
'Else
'End If
rs.MoveNext
strMessage = "Burada: " & (rs.AbsolutePosition + 1)
Debug.Print (strMessage)
Next k
'bu prosedurle 2 kere ct atıyor.
rs.MoveFirst
For z = 0 To i
rs.MoveNext
strMessage = "Burada: " & (rs.AbsolutePosition + 1)
Debug.Print (strMessage)
Next z
Next l
gs = ct - pt
Debug.Print gs
'Debug.Print rs.Fields("CurrentCase")
rs.MoveNext
strMessage = "Burada: " & (rs.AbsolutePosition + 1)
Debug.Print (strMessage)
Next i
rs.Close
Set rs = Nothing
db.Close
MsgBox "Simdiki durumlar gosterildi"
End Sub