Avatar billede webbe Nybegynder
02. maj 2002 - 14:28 Der er 25 kommentarer og
2 løsninger

Indsætte dato i Access DB

Hejsa

Jeg forsøger at indsætte en dato fra et formularfelt (fx. 18-07-2002) i et datafelt af typen "Dato og klokkeslæt" i en Access database.

Men jeg får syntaxfejl når jeg prøver.

Min sql ser således ud:

filmSQL = "INSERT INTO Film (Edbnr,Orgtitel,Nationaltitel,VHS_leje,Format,Instruktoer,Genre,VHS_koeb,BIO,DVD_leje,DVD_koeb,Spotlight) VALUES ("&""&Edbnr&",'"&Orgtitel&"','"&Nationaltitel&"','"&VHS_leje&"',"&Format&",'"&Instruktoer&"',"&Genre&",'"&VHS_koeb&"','"&BIO&"','"&DVD_leje&"','"&DVD_koeb&"','"&Spotlight&"')"

Hvis jeg laver data-feltet om til tekst er der ingen problemer.

Hvad er der galt?
Avatar billede webbe Nybegynder
02. maj 2002 - 14:30 #1
Der er tale om følgende fejl:

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

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

/scan_web/admin/save.asp, line 425
Avatar billede excession Nybegynder
02. maj 2002 - 14:30 #2
datoer som indsættes i access skal have # omkring..: #" & VHS_leje &"#

-- xs
Avatar billede kimiwan Nybegynder
02. maj 2002 - 14:30 #3
du skal bruge ## omkring datoer i access
Avatar billede excession Nybegynder
02. maj 2002 - 14:32 #4
hvis datoen kommer fra en formular skal du måske bruge DateValue på den så den bliver lavet om til en dato..

dato = DateValue(18-07-2002)
Avatar billede webbe Nybegynder
02. maj 2002 - 14:33 #5
Får nu følgende fejl:

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

[Microsoft][ODBC Microsoft Access Driver] Syntax error in date in query expression '##'.

/scan_web/admin/save.asp, line 425

På denne sql:

filmSQL = "UPDATE Film SET Edbnr="&Edbnr&",Orgtitel='"&Orgtitel&"',Nationaltitel='"&Nationaltitel&"',VHS_leje=#"&VHS_leje&"#,Format="&Format&",Instruktoer='"&Instruktoer&"',Genre="&Genre&",VHS_koeb=#"&VHS_koeb&"#,BIO=#"&BIO&"#,DVD_leje=#"&DVD_leje&"#,DVD_koeb=#"&DVD_koeb&"#,Spotlight='"&Spotlight&"' WHERE Edbnr="&Session("Edbnr")
Avatar billede excession Nybegynder
02. maj 2002 - 14:35 #6
hvilke felter er datoer?
Avatar billede webbe Nybegynder
02. maj 2002 - 14:36 #7
Det er dato-felter!
Avatar billede kimiwan Nybegynder
02. maj 2002 - 14:39 #8
det er vel ikke *allesammen* datofelter.. er det??

du skal kun skrive ## omkring datofelterne.
Avatar billede kimiwan Nybegynder
02. maj 2002 - 14:40 #9
dvs. datoværdierne.. ikke feltnavnene.
Avatar billede webbe Nybegynder
02. maj 2002 - 14:40 #10
Nej - det er kun VHS_leje, VHS_koeb, BIO, DVD_leje og DVD_koeb der er datofelter!
Avatar billede kimiwan Nybegynder
02. maj 2002 - 14:42 #11
prøv at skrive din sql streng ud i stedet for at execute den..

response.write filmsql
response.end

...så kan du se, om den indeholder de værdier, du regner med.
Avatar billede excession Nybegynder
02. maj 2002 - 14:43 #12
har du prøvet at udskrive alle datoerne og checke at de er det rigtige format?

Har du prøvet at bruge DateValue på datoerne?

-- xs
Avatar billede webbe Nybegynder
02. maj 2002 - 14:44 #13
Den indeholder de værdier jeg regner med - men den kan af en eller anden grund ikke indsætte dem i mine datofelter
Avatar billede webbe Nybegynder
02. maj 2002 - 14:45 #14
DateValue fungerer ikke hvis ikke datoen er udfyldt - og det er ikke altid at der er en dato til BIO
Avatar billede kimiwan Nybegynder
02. maj 2002 - 14:45 #15
kan du ikke lige vise os, hvad du får, når ud udskriver sql strengen???
Avatar billede webbe Nybegynder
02. maj 2002 - 14:46 #16
Data til tabellen FILM
UPDATE Film SET Edbnr=9999,Orgtitel='Nattens Engel',Nationaltitel='Nattens Engel',VHS_leje='15-04-2002',Format=2,Instruktoer='Test Testesen',Genre=5,VHS_koeb='15-04-2002',BIO='',DVD_leje='15-04-2002',DVD_koeb='15-04-2002',Spotlight='on' WHERE Edbnr=9999
Avatar billede excession Nybegynder
02. maj 2002 - 14:46 #17
kan du ikke komme med noget mere af din kode så.. så kan vi andre se hvad der kommer i variablerne
Avatar billede kimiwan Nybegynder
02. maj 2002 - 14:46 #18
nej, det skal være en gyldig dato i access' "øjne" ..ellers giver den fejl.
Avatar billede kimiwan Nybegynder
02. maj 2002 - 14:47 #19
hm.. i den kode udskriver du det jo stadig med '' i stedet for ## omkring datoerne
Avatar billede webbe Nybegynder
02. maj 2002 - 14:47 #20
Her er noget mere af koden:

'felter og opdatering til tabellen "Film"
Orgtitel = replace(replace(Upload.Form("org_titel"),"'","´"),"""","´´")
Nationaltitel = replace(replace(Upload.Form("nat_titel"),"'","´"),"""","´´")
VHS_leje = Upload.Form("vhs_leje")
Format = Upload.Form("releasetype")
Instruktoer = replace(replace(Upload.Form("instructor"),"'","´"),"""","´´")
Genre = Upload.Form("genre")
VHS_koeb = Upload.Form("vhs_koeb")
BIO = Upload.Form("bio")
DVD_leje = Upload.Form("dvd_leje")
DVD_koeb = Upload.Form("dvd_koeb")
Spotlight = Upload.Form("spotlight")

filmSQL = "UPDATE Film SET Edbnr="&Edbnr&",Orgtitel='"&Orgtitel&"',Nationaltitel='"&Nationaltitel&"',VHS_leje='"&VHS_leje&"',Format="&Format&",Instruktoer='"&Instruktoer&"',Genre="&Genre&",VHS_koeb='"&VHS_koeb&"',BIO='"&BIO&"',DVD_leje='"&DVD_leje&"',DVD_koeb='"&DVD_koeb&"',Spotlight='"&Spotlight&"' WHERE Edbnr="&Session("Edbnr")
Response.Write "<b>Data til tabellen FILM</b><br>" & filmSQL &"<br><br>"
'Connect.Execute(filmSQL)
Response.End
Avatar billede excession Nybegynder
02. maj 2002 - 14:47 #21
hvor blev # af?
Avatar billede webbe Nybegynder
02. maj 2002 - 14:50 #22
Ja - men selv om jeg skrev ## omkring datoerne fuckede den stadig!
Avatar billede kimiwan Nybegynder
02. maj 2002 - 14:51 #23
tja.. det kan jo være, der er mere galt end bare datoproblemet.. men du *skal* altså skrive ## omkring dine datoer, ikke '' !!!
Avatar billede webbe Nybegynder
02. maj 2002 - 14:53 #24
Har nu fundet ud af at det er hvis et af dato-felterne ikke er udfyldt i formularen.

Hvad kan jeg gøre ved det?
Avatar billede webbe Nybegynder
02. maj 2002 - 15:00 #25
Har givet den en standardværdi, som ikke udskrives (laver tjeck i udtrækket), så nu virker det faktisk.

Er det okay at I deler pointene?
Avatar billede kimiwan Nybegynder
02. maj 2002 - 15:04 #26
fint med mig
Avatar billede excession Nybegynder
02. maj 2002 - 15:11 #27
fjong :)
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