Neuigkeiten:

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

Mobiles Hauptmenü

VBA SQL Datum in Abfrage formatieren

Begonnen von Lkwjoe, Mai 21, 2019, 09:14:06

⏪ vorheriges - nächstes ⏩

Lkwjoe

Hallo zusammen,

suche überall, komme aber gerade nicht weiter...

In einer SQL-Abfrage übergebe ich als Parameter eine Variable "Zeitraum" mit einem Datum im Format yyyy.mm, also z.B. "2019.05".
Das gesuchte Datum liegt in der Tabelle in der Darstellung "01.05.2019" vor.

Wie muss ich das Datum aus der Tabelle formatieren, damit dieses zum Vergleichen auch als yyyy.mm vorliegt?

Habe es so probiert:
WHERE ((Format$([Freigabedatum],'yyyy.mm'))=" & Zeitraum & ")
Funktioniert nicht, bekomme kein Ergebnis.

Wie muss ich das Datum (Freigabedatum) oder den Parameter (Zeitraum) formatieren, damit ein Vergleich möglich ist?

Grüße, Joe

ebs17

Deine Variable ist kein Datum (vom Datentyp her), sondern Text. Texte müssen an dieser Stelle mit zusätzlichen Quotes/Doublequotes versehen werden.

Wenn Du aber vernünftig arbeiten willst: Die Formatierungsfunktion auf das Tabellenfeld bricht eine mögliche Indexnutzung und verhindert evtl. dringend benötigte Performance. Daher sollte stattdessen der Parameter von außen in ein richtiges Datum überführt werden, um auf ein Kriterium wie folgt zu kommen:
WHERE Freigabedatum = Zeitraum
' oder (um dem Begriff Zeitraum einen Sinn zu geben)
WHERE Freigabedatum BETWEEN Zeitraumbeginn AND Zeitraumende

Auch hier müssen von außen kommende Variablen SQL-gerecht formatiert werden: Datum an SQL-String übergeben
Oder aber Du beschäftigst Dich mit richtigen Parameterabfragen.
Mit freundlichem Glück Auf!

Eberhard

Lkwjoe

Hallo Eberhard,

herzlichen Dank für die schnelle und kompetente Unterstützung!
Meine Abfragen laufen jetzt so wie gewünscht  :D
Die Seiten von Karl Donaubauer Datum an SQL-String übergeben sind klasse, Link ist gespeichert ;)

Danke und Gruß, Joachim