Hallo
ich bin hier am verzweifeln, ich komm einfach nicht auf den Fehler. Über nen Button soll ein Formular nach Datum gefiltert werden nur gibt Access immer "Syntaxfehler in Datum in Abfrageausdruck '[Date] Between #01.01.2015# and #01.03.2015'.
Private Sub btnActivateFilter_Click()
Dim date1 As Date
Dim date2 As Date
date1 = "1/1/2015"
date2 = "1/3/2015"
Me.Filter = "[Date] Between #" & date1 & "# and #" & date2 & "#"
Me.Form.FilterOn = True
End Sub
wenn ich die Daten direkt eingebe dann gehts ohne Problem
Private Sub btnActivateFilter_Click()
Dim date1 As Date
Dim date2 As Date
date1 = "1/1/2015"
date2 = "1/3/2015"
Me.Filter = "[Date] Between #1/1/2015# and #1/3/2015#"
Me.Form.FilterOn = True
End Sub
danke für eure Hilfe
Hallo,
schau in die faq ...
http://www.donkarl.com?FAQ6.8
Hallo,
und zusätzlich:
"Date" als Feldnamen zu verwenden ist mehr als leichtsinnig...
Hi
erstmal danke für die Antworten!
Aber ich komm noch immer nicht richtig weiter, also Zielsetzung ist dass 2 Datumswerte über Variablen gesetzt werden und dann über Me.Filter eine Spalte (die das Format Datum/Urzeit hat) filtert:
Me.Filter = "[In Out] Between #" & date1 & "# and #" & date2 & "#"
Das Problem scheint mir an den 2 Variablen zu liegen denke ich.
Den Artikel "6.8 Datum an SQL-String übergeben" hab ich mir durchgelesen, werd aber nicht wirklich schlau daraus, ich will ja nicht einen Spaltenwert als Kriterium verwenden (sondern eben Variablen)
Danke für die hilfe!
Hallo,
lies nochmal genau donkarl 6.8 FAQ durch.....
Deine Zielsetzung ist ja klar und die Lösung beschreibt der Link.
Wo steht da was von "Spaltenwert als Kriterium"? Da steht : "Wert eines Datumsfeldes als Kriterium verwenden".
Und "Wert eines Datumsfeldes" == "Wert einer DatumsVariablen"
Wenn solche Felder/Variablen in VBA mit einem String verkettet werden, wird intern der Wert der Datumsvariablen zunächst zu einem String mit deutscher Datums-Formatierung (genauer: entsprechend der Regionseinstellungen) konvertiert. Diese Formatierung entspricht aber nicht der Anforderung an die Formatierung in einer SQL- Where-Condition (was der "Filter"-String ja bedeutet), die USA- oder ISO-Format aufweisen muss.(Format nicht verwechseln mit Datentyp!)
Die Ausgabe des Filterstrings in das Direktfenster könnte der Überprüfung dienen..
Me.Filter = "[In Out] Between " & Format(date1, "\#yyyy\-mm\-dd\#") & " and " & Format(date2, "\#yyyy\-mm\-dd\#")