Datumwert in SQL übergeben
Helmut
- asp.net
0 Frank (no reg)0 Helmut0 Axel Richter0 Vinzenz
0 Danfix0 Axel Richter
SQl - Anweisung (Teil):
RS.Open "SELECT ..... FROM .... WHERE (((....)='" & datum & "')) ORDER BY ... DESC; ", Conn
In der Variable datum steht ein Datumswert der auch in der Access DB als Datum/Uhrzeit typ definiert ist.
Ich übergebe den Datumswert von einer anderen ASP Seite.
Es kommt immer der fehler:
[Microsoft][ODBC Microsoft Access Driver] Datentypen in Kriterienausdruck unverträglich.
Was mache ich da falsch?
MFG
Helmut
Hi,
<quote>
='" & datum & "'
</quote>
ist vielleicht keine Datumsangabe, die die Jet DB-Engine von Access verstehen kann
evt. solltest du (als Tip) die variable datum vorher mittels CDate(datum) in einen VBScript Wert vom Type "Date" konvertieren.
Auch eine Möglichkeit wäre, die von der Jet DB-Engine evt. gegebenen internen Konvertierungsfunktionen zu benutzen.
Gruß, Frank
Danke für die fprschläge aber ich hab ein wenig rumgespielt mit den ergebnissen was ich von euch bekommen habe aber nix funktioniert.
datum = "10.03.2004"
datum = CDate(datum)
RS.Open "SELECT ... FROM ... WHERE (((t_....datum)= "#" & Format(datum, "m-d-yy") & "#" )) ORDER BY t_.....id DESC; ", Conn
Kompilierungsfehler in Microsoft VBScript- Fehler '800a0401'
Anweisungsende erwartet
/managementsystem/statistik/statistik_datum.asp, line 25
RS.Open "SELECT t_besucher.id, t_besucher.besucherip, t_besucher.besuchername, t_besucher.datum, t_besucher.uhrzeit FROM t_besucher WHERE (((t_besucher.datum)= "#" & Format(datum, "m-d-yy") & "#" )) ORDER BY t_besucher.id DESC; ", Conn
-----------------------------------------------------------------------------------------------------------------------------------------------------------------^
Da wir er di # nicht und bei den anderen wenn ich nur das CDate hernehme dann kommt die gleiche Meldung
Hallo,
datum = "10.03.2004"
datum = CDate(datum)RS.Open "SELECT t_besucher.id, t_besucher.besucherip, t_besucher.besuchername, t_besucher.datum, t_besucher.uhrzeit FROM t_besucher WHERE (((t_besucher.datum)= "#" & Format(datum, "m-d-yy") & "#" )) ORDER BY t_besucher.id DESC; ", Conn
Hier sind zwei " zuviel, oder es fehlt einmal (" &) und einmal (& ").
SQLString = "SELECT t_besucher.id, t_besucher.besucherip, t_besucher.besuchername, t_besucher.datum, t_besucher.uhrzeit FROM t_besucher WHERE (((t_besucher.datum)= #" & Format(datum, "m-d-yy") & "# )) ORDER BY t_besucher.id DESC; "
MsgBox (SQLString) 'Das ist zum Prüfen, ob der SQL-String korrekt ist
RS.Open SQLString, Conn
viele Grüße
Axel
PS: Bekommt Ihr eigentlich nirgends mehr gesagt, wie man in einem Quellcode sinnvoll mit Testausgaben arbeitet, um Fehler zu finden?
Hallo
SQLString = "SELECT t_besucher.id, t_besucher.besucherip, t_besucher.besuchername, t_besucher.datum, t_besucher.uhrzeit FROM t_besucher WHERE (((t_besucher.datum)= #" & Format(datum, "m-d-yy") & "# )) ORDER BY t_besucher.id DESC; "
MsgBox (SQLString) 'Das ist zum Prüfen, ob der SQL-String korrekt ist
RS.Open SQLString, Conn
PS: Bekommt Ihr eigentlich nirgends mehr gesagt, wie man in einem Quellcode sinnvoll mit Testausgaben arbeitet, um Fehler zu finden?
Diejenigen, die den Quellcode so schreiben, brauchen hier nicht zu posten :-) Sie finden die einfachen Fehler im SQL-Statement schon vorher.
Ich fürchte, das sind Versuche zur Optimierung, die man leider viel zu oft in Tutorials oder Handbüchern finden kann. Schau Dir mal die Beispiele in http://www.php.net/manual/de/function.mysql-query.php an :-( Meinst Du, dass es bei ASP viel besser aussieht?
Freundliche Grüsse,
Vinzenz
Vielleicht versteht Access etwas anderes unter dem Datentyp Date als Deine ASP-Seite...?!
Mit Daten ist das immer so ne Sache....
SQl - Anweisung (Teil):
RS.Open "SELECT ..... FROM .... WHERE (((....)='" & datum & "')) ORDER BY ... DESC; ", ConnIn der Variable datum steht ein Datumswert der auch in der Access DB als Datum/Uhrzeit typ definiert ist.
... der dann duch die Strinverkettung ..." & datum & "... in einen String umgewandelt wird. Lass Dir den Wert von ("Datum: " & datum) mal ausgeben (MsgBox oder ins Dokument schreiben). Was wird da gezeigt?
Eine Abfrage mit Where-Kriterium Datumswert sieht in Access so aus:
SELECT Tabelle1.Name, Tabelle1.Datum
FROM Tabelle1
WHERE Tabelle1.Datum = #3/11/04#;
-> Alle Datensätze, die in Tabelle1.Datum den 11.03.2004 stehen haben.
Wenn datum wirklich eine Variable vom Typ Date ist, dann:
SQLString = "SELECT Tabelle1.Name, Tabelle1.Datum FROM Tabelle1 WHERE Tabelle1.Datum = #" & Format(datum, "m-d-yy") & "#"
viele Grüße
Axel