PDA

View Full Version : [asp] selezionare data


power83
14-11-2005, 21:34
salve a tutti..
ho una combo box nella quale vengono inserite delle date prese da un database access.
Una volta selezionata la data dovrei trovare n record di una tabella a partire appunto dalla data selezionata.
Quando eseguo la selezione mi restituisce questo errore:

Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.

/pagina1.asp, line 127

<%
inizio = session("set")

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};" &_
"DBQ="& Server.MapPath("dati.mdb")

if (session("con") = 01) then
sql = "select TOP 50 * from tab1 WHERE data >= '" & inizio &"' "
set rs = conn.execute(sql)
else
sql = "select TOP 50 * from tab2 WHERE data >= '" & inizio &"' "
set rs = conn.execute(sql)
end if

do until rs.eof
....
%>

Ho provato a stampare a video inizio e mi scrive ad es.:
02/01/2006

Qualcuno sa aiutarmi?
grazie

guldo76
14-11-2005, 22:10
Non conosco la vecchia versione di ASP, ma direi che il problema riguarda access.
Mi sa che il tuo campo "data" č di tipo data, mentre tu lo tratti come testo.
(da cui il "type mismatch")
Nelle query con access devi racchiudere una data tra '#'.
Ad esempio, invece di
where data >= '02/01/2006'
devi scrivere
where data >= #02/01/2006#

Inoltre, fai sempre molta attenzione con le date! Si fa presto a confondere il mese con il giorno. Ad esempio, la data di poco fa, viene interpretata da access come 1 febbraio 2006, dato che considera il formato americano.
Ti consiglio di usare sempre il formato giapponese :ciapet:
AAAA/MM/GG
che č uguale al formato ISO :D
Insomma, il 2 gennaio 2006 sarebbe #2006/01/02#
Cosė č pių difficile confondersi.