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()));
WHERE Datum + Uhrzeit BETWEEN Date() - 1 + #7:30:00# AND Now()
Danke hat geklappt ;)
*daumen hoch*
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?
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)
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....
WHERE
Datum + Uhrzeit BETWEEN Date() + (Time() < #7:30:00#) + #7:30:00#
AND
Now()
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()
?
(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.
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?
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.
aso.
Merci