Problem mit Datum im SQL-Befehl

jupo22

Grünschnabel
Hallo Zusammen!

Bin die ganze Zeit schon am Grübeln, wie ich folgendes Problem lösen könnte.
Mein Ziel ist einen Select-Befehl zu kreiren, der mir Datensätze vor einem bestimmtes Datum zurückgibt.
Meine Datenbank ist in Access und das Datumsfeld ist auch als solches deklariert.
Die Abfrage muss ich dann in VB.net einfügen.
dateDatebefore ist auch als date deklariert.
Das Datum wird im Format dd.mm.yyyy eingegeben.

Das hier ist mein Versuch, der bis jetzt nicht hinhaut:

Code:
cmdRep.CommandText = "SELECT RecordNo, FirstName, LastName, Company, CallDate, PhoneNumber, Subject, RepID, QueryDone FROM qryInfoSystem WHERE (CallDate < " & dateDatebefore & ")"

Bei dieser Variante kommt der Fehler: Syntaxfehler in Zahl in Abfrageausdruck '(CallDate < 06.03.2006)'

Dann versuchte ich es mit der #-Variante:
Code:
cmdRep.CommandText = "SELECT RecordNo, FirstName, LastName, Company, CallDate, PhoneNumber, Subject, RepID, QueryDone FROM qryInfoSystem WHERE (CallDate < #" & dateCallDate & "#)"

Da kam dann der Fehler: Syntaxfehler in Datum in Abfrageausdruck '(CallDate < #06.03.2006#)'

Und dann habe ich noch folgendes ausprobiert:
Code:
cmdRep.CommandText = "SELECT RecordNo, FirstName, LastName, Company, CallDate, PhoneNumber, Subject, RepID, QueryDone FROM qryInfoSystem WHERE (CallDate < #" & Format(dateCallDate, "dd.mm.yyyy") & "#)"

Da kam auch wieder der gleiche Fehler wie vorher.

Eigentlich dürfte es ja nicht so schwer sein diese Abfrage zu realisieren, nur komme ich leider nicht drauf und etwas passendes habe ich bis jetzt auch noch nicht im Internet gefunden.

Hoffe ihr könnt mir da ein wenig auf die Sprünge helfen.

Vielen Dank schon mal im Voraus.

Ciao,
jupo22
 
Hi,

also ich bin mit Access nicht so bewandert, aber beim SQL Server müssen Datumswerte in Hochkomma geschrieben werden.

Ich würde dir aber aber vorschlagen, deinen Query parametrisiert zu machen.
also:
SQL:
select * from mytable where myattr = ?

Mit OleDBCommand.Parameters.Add(new Parameter(....)) fügst du dann den Vergleichswert hinzu. Der OleDBProvider sollte dann die Anpassung an das Format des DBMS übernehmen
 
Zurück