Avatar billede chris Nybegynder
31. maj 1999 - 08:44 Der er 4 kommentarer og
1 løsning

Hvad er fejlen ??

Hejsa
Dette er fra en kalender, men der er noget galt.
Jeg får denne fejl :
[Microsoft][ODBC Microsoft Access 97 Driver] Syntax error in date in query expression ''dte = #12-maj-1999#''.

diary/view_day.asp, line 117

Hva er fejlen her ?

<%

set my_Conn= Server.CreateObject("ADODB.Connection")
my_Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=d:diary\diary.mdb"

StrSql= "Select * from diary where dte = #" & Request("view_Date") & "#"

rs = my_Conn.Execute (StrSql)

on Error Resume next

%>
Avatar billede cbp Nybegynder
31. maj 1999 - 09:34 #1
Jeg tror det er på grund af dato-formatet. Access kan ikke bruge en tekst for måneden, så du bliver nød til enten at indtaste et tal for måneden eller 'oversætte' fra månedsnavn til månedsnummer inden du udfører din SQL.
Avatar billede stoffer Nybegynder
31. maj 1999 - 16:53 #2
Ja eller lave Valuen på feltet om fra Dato - Tekst, så er du uden om det problem, du skal bare huske at lave det sådan:

'" & Request("view_Date") & "'"

Men hvis du absolut vil have det til Dato må du som cbp skriver ikke skrive "maj", men skriv "05" istedet

------------> stoffer
Avatar billede webtime Nybegynder
01. juni 1999 - 10:15 #3
Hej Chris,

Først skal du selvfølgelig finde ud af om det datoformat du smider ind i din tabel er det samme som det du spørger efter. Dette gør du vha. response.write.

Så skal du lave en variabel ud af din request.form forspørgsel.

mdate = trim(Request("view_Date"))

Dernæst skal du konverterer mdate til en string. Dette gøres vha. denne kommando der samtidig laver en variabel ud af din dato:

redidate = cstr(mdate)

Så er du klar til at hente fra databasen:

StrSql= "Select * from diary where dte = " & redidate

Håber det hjælper. Jeg har ikke prøvet det af - det er dit eget job, men jeg er ret sikker på at det dækker.

MVH

Chris Østergaard
WebTime Internet
chris@webtime.dk
Avatar billede cbp Nybegynder
01. juni 1999 - 10:24 #4
Trim fjerner mellemrum fra start og slut af en streng, så med mindre at brugeren har indtastet mellemrum omkring datoen er Trim unødvendig.

At bruge CStr er helt sikkert unødvendigt, da det sker automatisk når man hæfter datoen bag på StrSql-strengen.

Endelig mangler du ' rundt om datoen i strsql.

Bortset fra disse ting, synes jeg det var en fin kommentar.
Avatar billede madsb Nybegynder
03. juni 1999 - 12:48 #5
Du skal have '' rundt om dato værdier når du indsætter dem i en database.
Endvidere er SQL fortolkeren kun på engelsk, hvorfor du kun kan indsætte det engelske ord for måned, og for at gøre det besværligst muligt sætter amerikanerne måned før dag, og det bliver vi danskere altså nødt til at rette os efter.
SUM: dte = 'mm-dd-yy' vil virke
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