GOOGLE ADS

Donnerstag, 28. April 2022

Zugriff auf VBA-DCount-Datentypkonflikt im Kriterienausdruck, wenn Datentypen offensichtlich gleich sind (beide Text)

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

Warum werden SCHED_FIFO-Threads derselben physischen CPU zugewiesen, obwohl CPUs im Leerlauf verfügbar sind?

Lösung des Problems Wenn ich das richtig verstehe, versuchen Sie, SCHED_FIFO mit aktiviertem Hyperthreading ("HT") zu verwenden, ...