Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Zeitraum

Begonnen von Xoar, September 17, 2015, 17:09:58

⏪ vorheriges - nächstes ⏩

Xoar

Hallo liebe Profi´s

Hab ein kleines Problem, und zwar hab ich eine Abfrage mit den Feldern [ID] [Datum] [Uhrzeit] [Eintragung] [Verfasser]
bis dato hatte ich die Abfrage über =datum() im Kriteriumfeld von [Datum] immer nach dem heutigem Tag gefiltert, was auch klappt, NUN aber soll immer nach (Tag gestern von 07:30 bis Tag heute) gefiltert werden. Und da stehe ich auf´m Schlauch, versucht hatte ich sowas wie =datum()-1 #07:30# bis datum() klappt natürlich nicht -.-

Hier mal der SQL Teil der Abfrage
ZitatSELECT tblBuch.ID, tblBuch.Datum, tblBuch.Uhrzeit, tblBuch.Eintragung, tblBuch.Verfasser
FROM tblBuch
WHERE (((tblBuch.Datum)=Date()));


ebs17

WHERE Datum + Uhrzeit BETWEEN Date() - 1 + #7:30:00# AND Now()
Mit freundlichem Glück Auf!

Eberhard

Xoar

Danke hat geklappt ;)

*daumen hoch*

Xoar

#3
mhhh hab meinen Ausdruck nochmal etwas erweitert, leider zeigt er mir dann keine Datensätze mehr an (ja es sind welche in dem Zeitraum vorhanden)

Wenn(Jetzt()>#07:30:01#;[tblbuch].[Datum]+[tblbuch].[Uhrzeit] Zwischen Datum()-1+#07:30:01# Und Jetzt();Jetzt())

WHERE ((([tblbuch].[Datum]+[tblbuch].[Uhrzeit])=IIf(Now()>#12/30/1899 7:30:1#,[tblbuch].[Datum]+[tblbuch].[Uhrzeit] Between Date()-1+#12/30/1899 7:30:1# And Now(),Now())));

im SQL Code fügt er auch immer dieses alte Jahresangabe dazu, egal ob ich diese lösche oder nicht.
Ob da Date oder NOW steht, macht da keinen Unterschied.

Einer ne Idee?


MaggieMay

#4
Hi,

kannst du bitte mal mit Worten beschreiben was du mit diesem Ausdruck bezweckst:
[tblbuch].[Datum]+[tblbuch].[Uhrzeit] Zwischen Datum()-1+#07:30:01# Und Jetzt()


Die Wenn-Funktion besteht aus drei Teilen:
1. Bedingung
2. True-Aktion
3. False-Aktion

Könnte es sein, dass du so etwas meinst:
Wenn(Jetzt()>#07:30:01# UND [tblbuch].[Datum]+[tblbuch].[Uhrzeit] Zwischen Datum()-1+#07:30:01# Und Jetzt();Jetzt();NULL)
Freundliche Grüße
MaggieMay

Xoar

Hallo, also in Worten soll sowas passieren:
Wenn die jetztige Uhrzeit > 07:30:01 dann soll er NUR die Datensätze von heute ab 07:30:02 anzeigen, ansonsten die Datensätze von gestern 07:30:01, bis jetzt.

Hab auchmal ne VBA Variante versucht
If Time < TimeSerial(7, 30, 1) Then
    Form_frmbuch.RecordSource = "SELECT ID,Datum,Uhrzeit,Eintragung,Verfasser " _
                                    & "FROM tblbuch " _
                                    & "WHERE Datum + Uhrzeit between Date()-1[color=red] ab 07:30:02 [/color]and now()"
Else
    Form_frmbuch.RecordSource = "SELECT ID,Datum,Uhrzeit,Eintragung,Verfasser " _
                                    & "FROM tblbuch " _
                                    & "WHERE Datum= date() [color=red]hier fehlt noch der Code für alle Datensätze NACH 07:30:01[/color]"

End If


Wie man sieht, fehlt mir hier aber auch ein gewisser Teil....

Alles nicht so einfach, bis man weiß wie....

ebs17

WHERE
   Datum + Uhrzeit BETWEEN Date() + (Time() < #7:30:00#) + #7:30:00#
      AND
   Now()
Mit freundlichem Glück Auf!

Eberhard

Xoar

Super danke!

Kann ich leider erst Mittwoch testen. Hab nur noch nicht ganz den Syntax verstanden.

Wo Datum und die Uhrzeit zwischen "heute mit der Zeit vor 7:30 ist" dann + 7:30 verstehe ich nicht und jetzt.

Oder sind das zwei Varianten, einmal mit der Zeit vor 7:30 und einmal mit ab 7:30? bis jetzt.

Sprich
   Datum + Uhrzeit BETWEEN Date() + Time() < #7:30:00# AND Now()
und einmal
   Datum + Uhrzeit BETWEEN Date() + #7:30:00# AND Now()
?

ebs17

(Time() < #7:30:00#)

Time gibt die aktuelle Uhrzeit zurück.
Der Gesamtausdruck in den Klammern ist eine Wahrheitsprüfung. Diese ergibt dann True (=> -1) oder False (=> 0). Dieser Wert wird dann einfach zum Datum addiert und ergibt dann den Wechsel auf den Vortag oder eben nicht.
Mit freundlichem Glück Auf!

Eberhard

Xoar

Ah ok, dann hab ich es verstanden (glaub ich)


Ergibt der Ausdruck immer true = -1 und false = 0, oder kann der auch +1 ergeben?
Das hab ich ja nirgends definiert, oder?


MzKlMu

Hallo,
ein errechneter Wahrheitswert hat bei Access immer nur True (= -1) oder False (= 0). Was anderes gibt es nicht. Das muss man nicht definieren, das ist so.
Gruß Klaus

Xoar