Juni 27, 2022, 13:24:55

Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!


Einträge in einer Datenbank in einem bestimmten Zeitraum zählen

Begonnen von derNeue87, Mai 09, 2022, 08:44:15

⏪ vorheriges - nächstes ⏩

derNeue87

Hallo und guten Morgen,
ich bin neu hier, da ich Hilfe bei einem kleinen Projekt brauche, bei dem ich nicht weiterkomme.

Ich habe eine Spalte in einer DB des Typs Datum/Zeit. Hier möchte ich nun alle Einträge eines bestimmten Zeitraums zählen. Leider bekomme ich dies mit DCount nicht so wirklich hin. Wie muss das aussehen, wenn ich die Anzahl der Einträge beispielsweise zwischen 09.05.2022 08:00:00 und 09.05.2022 09:00:00 angezeigt haben möchte?

Schon mal Danke im Voraus.

DF6GL

Hallo,


z. B.:



Dim datVon as Date
Dim datBis as Date
Dim Anz as Long

datVon = #05/09/2022 08:00:00#
datBis = #05/09/2022 09:00:00#

Anz = DCount("*","tblUnbekannteTabelle","UnbekanntesDatumsFeld between " & datVon & " And " & datBis)

derNeue87

Hallo DF6GL,
schon mal Danke, aber leider führt dies zu einem Fehler bei mir:
Laufzeitfehler '3075' Syntaxfehler (fehlender Operator in Abfrageausdruck 'Datum_Zeit between 09.05.2022 08:00:00 And 09.05.2022 09:00:00'.

Der Code lautet:
Private Sub Form_Timer()
Dim ZeitStart As Date
Dim ZeitEnde As Date
Dim aktuellesDatum As Date
Dim aktuelleZeit As Date
Dim anz As Long
aktuellesDatum = Date
aktuelleZeit = Format(Now, "hh:mm:ss")
Me!txt_datum = aktuellesDatum
ZeitStart = #5/9/2022 8:00:00 AM#
ZeitEnde = #5/9/2022 9:00:00 AM#
anz = DCount("DMC", "Tab_Teile", "Datum_Zeit between " & ZeitStart & " And " & ZeitEnde)
Me!txt_anz = anz
Me.Requery
Me.Repaint
End Sub

DF6GL

Hallo,


Private Sub Form_Timer()
Dim strZeitStart As String
Dim strZeitEnde As String
'''Dim aktuellesDatum As Date
'''Dim aktuelleZeit As Date



'''aktuellesDatum = Date
'''aktuelleZeit = Format(Now(), "hh:mm:ss")

Me!txt_datum = Date    '''aktuellesDatum

strZeitStart = "#05/09/2022 08:00:00#"
strZeitEnde = "#05/09/2022 09:00:00#"


Me!txt_anz = DCount("*", "Tab_Teile", "Datum_Zeit between " & strZeitStart & " And " & strZeitEnde)




'''Me.Requery
'''Me.Repaint

End Sub

MzKlMu

Hallo,
im Code gibt es noch überflüssige Variablen. Außerdem wendet man so niemals einen Formatbefehl an.
Formatiert wird ausschließlich in Formularen und Berichten. Mit Format erzeugt man auch Text und der ist hier ungeeignet. Die Zeit lässt sich auch direkt zuweisen.
Private Sub Form_Timer()
Dim ZeitStart As Date
Dim ZeitEnde As Date
Dim aktuelleZeit As Date
aktuelleZeit = Time
Me.txt_datum = Date
ZeitStart = #5/9/2022 8:00:00 AM#
ZeitEnde = #5/9/2022 9:00:00 AM#
Me.txt_anz = DCount("*", "Tab_Teile", "Datum_Zeit between " & ZeitStart & " And " & ZeitEnde)
Me.Requery
Me.Repaint
End Sub
Zum Zählen würde ich den * verwenden.
Ansonsten kann ich jetzt keinen Fehler erkennen.
Die Verwendung des Formulartimers (Form_Timer) ist mir auch ein Rätsel, wozu steht das im Timerereignis ?

PS:
Bitte keine vollständigen Beiträge zitieren und 2x schon gar nicht. In direkter Antwort ist meist kein Zitat notwendig.
Und lösche im Code überflüssige Leerzeilen, dann wird das kürzer und übersichtlicher.
Gruß
Klaus

PhilS

So wie sie in dem Code hier verwendet werden, müssen die Variablen ZeitStart und ZeitEnde Strings sein und auch die Begrenzer enthalten.
Siehe: 6.8 Datum an SQL-String übergeben
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

derNeue87

Danke an Alle.
Als string hat es nun funktioniert.