Access sql syntax

S

Sven Hoffmann

Hallo zusammen,

Ich arbeite mit folgender Abfrage um Daten nach Datum zu Filtern:

Public Function SQL_Date(dte As Variant) As String
If IsDate(dte) Then
SQL_Date = _
Format(dte, "\#yyyy\-mm\-dd\#")

Else
SQL_Date = "0"
End If
End Function


CurrentDb.Execute ("INSERT INTO TblQuery SELECT * From TblInsertDatas "
& "WHERE DDate between " & SQL_Date(TxtDateFrom) & " AND " &
SQL_Date(TxtDateTo))

Nachteil ist, wenn ich als Datum vom 12.12.05 bis 13.12.05 auswaehle,
bekomm ich nur Daten vom 12.12.05 angezeigt. Ich moecht aber, dass auch
der 13.12.05 mit angezeigt wird. TxtDateFrom und TxtDateTo sind
Textfelder in die man das gewuenscht Datum eingeben kann.

Deshalb hab ich folgendes versucht:

CurrentDb.Execute ("INSERT INTO TblQuery SELECT * From TblInsertDatas "
& "WHERE DDate >= " & SQL_Date(TxtDateFrom) & " AND <= " &
SQL_Date(TxtDateTo))

Verursacht aber Laufzeitfehler 3075 ...(missing operator)

Hab schon einiges Versucht, bekomm die Syntax aber nicht richtig hin.

Kann mir bitte jemand helfen.

Vielen Dank

Gruss Sven
 
G

George Nicholson

(From a non-German speaker:)

From JetSQL40.Chm (Help file), "WHERE" Clause entry:
"... When you specify the criteria argument, date literals must be in U.S.
format, even if you are not using the U.S. version of the Microsoft® Jet
database engine. For example, May 10, 1996, is written 10/5/96 in the United
Kingdom and 5/10/96 in the United States. Be sure to enclose your date
literals with the number sign (#) as shown in the following examples..."
SQL_Date = Format(dte, "\#yyyy\-mm\-dd\#")

should be

SQL_Date = Format(dte, "\#mm\\dd\\yyyy\#")

or rework your WHERE clause:
"WHERE DDate between " & DateValue(TxtDateFrom) & " AND " &
DateValue(TxtDateTo))

This assumes that DDate is an actual Date field and not a text value
representing a date. If DDate is a Text field in yyyy-mm-dd format, then you
can remove the date literals (#) from your function:
SQL_Date = Format(dte, "yyyy\-mm\-dd")

HTH,
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top