Ich mache einen einfachen DCount und suche nur, wie viele Leute sich für dasselbe Datum und dieselbe Uhrzeit angemeldet haben. Im Moment verwende ich nur ein einziges Datum und eine einzige Zeit, um den Prozess zu beweisen, dann lasse ich ihn alle möglichen Daten und Zeiten durchlaufen.
Private Sub Get_Singles()
Dim TestDate As String
Dim TestTime As String
AloneCnt = 0
Dinc = 0
Tinc = 0
TestDate = vStartDate
TestTime = "0700"
If (DCount("[ID]", VigilTable, "[fldTime] = " & TestTime) = 1) Then
' "[fldDate] = " & TestDate) & " And
AloneCnt = AloneCnt + 1
End If
End Sub
Es funktioniert gut für das Datum (ich habe es in eine andere Zeile verschoben und auskommentiert, damit ich mich auf die Uhrzeit konzentrieren kann.).
In der Tabelle sind fldDate und fldTime beide auf Text gesetzt (wird in der Eigenschaftenliste als Field Size = 255 angezeigt) und, wie Sie sehen können, sind TestDate und TestTime beide als String abgeblendet.
Und es funktioniert, wenn ich die DCount-Zeile ändere in:
(DCount("[ID]", VigilTable, "[fldTime] = '0700'")
Wo ist also der Fehler?
Vielen Dank.
Lösung des Problems
Der Fehler ist, dass Sie Datum und Uhrzeit als Datentyp Datum behandeln müssen. Ändern Sie also den Datentyp der Felder in DateTime und:
Dim TestDate As Date
Dim TestTime As Date
Dim AloneCnt As Long
TestDate = vStartDate
TestTime = TimeSerial(7, 0, 0)
If DCount("*", "VigilTable", "[fldTime] = #" & Format(TestTime, "hh\:nn\:ss") & "# And [fldDate] = #" & Format(TestDate, "yyyy\/mm\/dd") & "#") = 1 Then
AloneCnt = AloneCnt + 1
End If
Keine Kommentare:
Kommentar veröffentlichen