Avatar billede tblaster Nybegynder
22. september 2002 - 11:31 Der er 8 kommentarer og
1 løsning

Data type mismatch in criteria expression.

Hejsa ...

Hvad er der lige galt her:

<%
Set Con = Server.CreateObject("ADODB.Connection")
DBPath = "DBQ=" & server.mappath("../../db/Booking.mdb")
Con.Open "DRIVER={Microsoft Access Driver (*.mdb)};Password=1234 ;" & DBPath

'Find Bookninger for valgte dato
SQL = "SELECT booking.start , booking.firma , booking.initialer , booking.mail , booking.kommentar FROM booking WHERE dato = '" & dato & "'"
set rs = con.execute (SQL)

%>

Den melder følgende:

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

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

Den siger der ligger i denne linje:

set rs = con.execute (SQL)
Avatar billede KingMedia Novice
22. september 2002 - 11:38 #1
Fejlen ligger nok her....

WHERE dato = '" & dato & "'"

Hvordan har du defineret variablen "dato" ?


/Mads
Avatar billede monstermand Nybegynder
22. september 2002 - 11:38 #2
SQL = "SELECT booking.start , booking.firma , booking.initialer , booking.mail , booking.kommentar FROM booking WHERE dato =" & 'dato' &
Avatar billede tblaster Nybegynder
22. september 2002 - 11:38 #3
Datoen laves vha følgende:

sQDag = request.querystring("Dag")
sQMdr = request.querystring("Mdr")
sQAar = request.querystring("Mdr")

dato = sQdag & "-" & sQMdr & "-" & sQAar

Og kommer så ud som:
22-09-2002
Avatar billede KingMedia Novice
22. september 2002 - 11:41 #4
Hmmmmmm

sQMdr og sQAar henter fra samme Query ? ....

Prøv at plinge din
"set rs = con.execute (SQL)"
ud, og så i stedet lige lave en

response.write SQL

og skriv hvad den udskriver.. :o)
Avatar billede eagleeye Praktikant
22. september 2002 - 11:41 #5
Hvis dato i databasen er defineret som dato felt skal der # omkring og ikke ':

SQL = "SELECT booking.start , booking.firma , booking.initialer , booking.mail , booking.kommentar FROM booking WHERE dato = #" & dato & "#"
Avatar billede monstermand Nybegynder
22. september 2002 - 11:42 #6
det sidste & skal selvfølgelig væk..
Avatar billede tblaster Nybegynder
22. september 2002 - 11:42 #7
I databasen står datoerne som følgende:
30-09-2002

Altså i Kort datoformat

Det lader til at den mener at de to ikke passer sammen og derfor ikke kan sammenligne dem :-(
Avatar billede tblaster Nybegynder
22. september 2002 - 11:46 #8
eagleeye ... dit lader til at virke ... nu kommer den ikke med nogen fejl!

eagleeye (og alle jer andre): http://www.eksperten.dk/spm/260908
Avatar billede eagleeye Praktikant
22. september 2002 - 11:46 #9
SQL bruge US dato format så du skal bruge dato formatet mm-dd-yyyy, selvom datoen ligger i DK format.

dato = sQMdr & "-" & sQdag & "-" & sQAar

og så med # omkring som før angivet:
SQL = "SELECT booking.start , booking.firma , booking.initialer , booking.mail , booking.kommentar FROM booking WHERE dato = #" & dato & "#"
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester