SQL Datumskriterium über Textfeld funktioniert nicht

Chaseman

Cadet 4th Year
Registriert
Feb. 2011
Beiträge
70
Guten Abend werte Community,
ich bastel gerade an einer kleineren SQL Abfrage in Access. Select ... Group by und Order sind alle kein Problem, funktionieren auch in der Abfrage einwandfrei. Aber am Ende habe ich ein Kriterium WHERE Tabelle.[Datum] = Forms!Forms1![Datumsfeld]. Dabei sollen in der Abfrage dann nur die Werte ausgegeben werden, die eben zu dem entsprechenden Datum, welches in das Textfeld eingegeben wird, gehören. Das Textfeld habe ich als "Short Date" formatiert und auch die Datumsspalte in der Access Datentabelle ist als Datum markiert. Folgendes Problem:
Gebe ich
WHERE Tabelle.[Datum]= #04/27/2018#
ein, funktioniert die Abfrage einwandfrei und ich bekomme die richtigen Datensätze. Sobald ich aber das Datum aus dem Textfeld verwenden will, funkioniert nichts mehr.
Mit
WHERE Tabelle.[Datum] = Forms!Form1![Datumsfeld]
bekomme ich einen leeren Datensatz.
Mit
WHERE Tabelle.[Datum] = Format(Forms!Form1![Datumsfeld],"dd/mm/yyyy")
bekomme ich einen Type Mismatch.
Mit
WHERE Format(Tabelle.[Datum],"dd/mm/yyyy") = Format(Forms!Form1![Datumsfeld],"dd/mm/yyyy")
bekomme ich auch einen leeren Datensatz. Auch mit allen möglichen anderen Kombinationen wie bspw.
Format(Tabelle.[Datum],"mm/dd/yyyy") = Format(Forms!Form1![Datumsfeld],"dd/mm/yyyy")
oder vice versa bekomme ich nur einen leeren Datensatz.
Mit
Tabelle.[Datum], = "#" & Forms!Form1![Datumsfeld] & "#"
bekomme ich auch nicht die richtigen Ergebnisse.
Kann mir da bitte jemand weiterhelfen? Woran könnte es liegen?

Danke schonmal
 
Zuletzt bearbeitet: (Formatanpassungen)
Puh, vll solltest du erstmal deinen Beitrag hier umformatieren, sehr übersichtlich ist das nicht zu lesen^^.

Hast du mal was in die Richtung probiert: Format(Feld, "Short Date")

LG KeyKon
 
Zuletzt bearbeitet:
Punkt 1: Habe es umformatiert. Leider habe ich im Editor den "Code" Button nicht gefunden, wurden jetzt halt quotes. Sollten aber trotzdem die Lesbarkeit deutlich verbessern
2. Das Eingabefeld ist als ShortDate formatiert. Sollte es dann nicht direkt auch als ShortDate in das SQL Statement laufen? Ich befürchte nur, dass ich auch mit Format(..,"ShortDate") nur einen leeren Datensatz bekomme. Mich wundert, dass das Datum in der Tabelle als 27/04/2018 angezeigt wird. Im Statement muss ich aber #04/27/2018# eingeben, um Datensätze für den 27.04.2018 zu erhalten. Ich vermute, dass da das Problem liegt.

Edit:
Code:
Format(...,"ShortDate")
gibt leider auch nur einen leeren Datensatz zurück

Edit2: Lösung ist, dass Access anscheinend ein ganz bestimmtes Format benötigt.
Mit
Code:
Format(Tabelle.[Datum],"\#yyyy\-mm\-dd\#")=Format([Datumsfeld],"\#yyyy\-mm\-dd\#")
funktioniert es.
 
Zuletzt bearbeitet:

Ähnliche Themen

Zurück
Oben