Avatar billede konradsen Nybegynder
29. maj 2005 - 17:29 Der er 11 kommentarer og
1 løsning

Update checkbox i MDB

Jeg får denne fejl, når jeg prøver at opdatere Sand/Falsk feltet i min database.

Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][ODBC Microsoft Access-driver] Datatyperne stemmer ikke overens i kriterieudtrykket.

Det er denne kode der udføre det:


<% 

textVar = request.form("fdf_news_text")
textVar = replace(textVar,vbcrlf,"<br>")

If Request.Form("fdf_news_public") = "ON" then
  publicVar = Sand
  else
  publicVar = Falsk
End if

Set Conn = Server.CreateObject("ADODB.Connection")
  Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="& Server.MapPath("/db/data.mdb")
 
  Conn.execute("INSERT INTO news (fdf_headline, fdf_text, fdf_date, fdf_author, fdf_public) VALUES ('"& Request.Form("fdf_news_head") &"', '"& textVar &"', '"& FormatDateTime(Now, vbShortDate) &"', '"& Session("fdf_name") &"', '"& publicVar &"')")
     
  conn.close
  set conn = nothing
 
  Response.Redirect "/default.asp?include=nyheder"
 
  %>

Databasen er sat til at bruge: Sand/falsk !!
Avatar billede thesurfer Nybegynder
29. maj 2005 - 17:36 #1
Der skal "" tegn uden om værdierne.. dvs: "Sand" og "Falsk"

Men mon ikke at det skal være "True" og "False"..? Eller 1 og 0 ..?

/theSurfer
Avatar billede davidfossil Nybegynder
29. maj 2005 - 17:49 #2
jeg ville forsøge mig med:

If Request.Form("fdf_news_public") = "ON" then
  publicVar = True
  else
  publicVar = False
End if

I så fald vil jeg ikke tro at det er nødvendigt med " omkring.
Avatar billede thesurfer Nybegynder
29. maj 2005 - 17:54 #3
Husk at undersøge, om du har brugt method="post" eller method="get".. :-)

/theSurfer
Avatar billede thesurfer Nybegynder
29. maj 2005 - 17:55 #4
Jeg vil også skyde på True/False.. mener at navnene er på engelsk..

/theSurfer
Avatar billede konradsen Nybegynder
29. maj 2005 - 18:12 #5
Jeg har brugt: method="post"!?
Avatar billede konradsen Nybegynder
29. maj 2005 - 18:16 #6
Det virker for iøvrigt ikke med: TRUE FALSE.. Det har jeg nemlig testet før. Heller ikke hvis jeg fjerner "" i UPDATE sætningen.
Avatar billede thesurfer Nybegynder
29. maj 2005 - 18:32 #7
If Request.Form("fdf_news_public") = "ON" then
  publicVar = True
  else
  publicVar = False
End if

...


  Conn.execute("INSERT INTO news (fdf_headline, fdf_text, fdf_date, fdf_author, fdf_public) VALUES ('"& Request.Form("fdf_news_head") &"', '"& textVar &"', '"& FormatDateTime(Now, vbShortDate) &"', '"& Session("fdf_name") &"', "& publicVar &")")

...
%>

Dvs, uden gåseøjne og apostroffer..

/theSurfer
Avatar billede thesurfer Nybegynder
29. maj 2005 - 18:33 #8
Prøv også med 1 i stedet for True, og 0 i stedet for False .. men altså uden apostroffer (') i din SQL sætning..

/theSurfer
Avatar billede konradsen Nybegynder
29. maj 2005 - 18:40 #9
Jeg får staig en fejl, men det er nu en anden:

Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][ODBC Microsoft Access-driver] Der er for få parametre. Der var ventet 1.
/adm/script_add_news.asp, line 15

Koden på linje 15 er:

Conn.execute("INSERT INTO news (fdf_headline, fdf_text, fdf_date, fdf_author, fdf_public) VALUES ('"& Request.Form("fdf_news_head") &"', '"& textVar &"', '"& FormatDateTime(Now, vbShortDate) &"', '"& Session("fdf_name") &"', "& publicVar &")")
Avatar billede konradsen Nybegynder
29. maj 2005 - 18:44 #10
JAAA !!! Sådan mand !

Det virkede med 1 og 0 ! Sådan thesurfer! Nice work der. Point til dig, hvis du smider et svar.

:o)
Avatar billede thesurfer Nybegynder
29. maj 2005 - 18:52 #11
Svar smidt :-)

/theSurfer
Avatar billede thesurfer Nybegynder
29. maj 2005 - 18:56 #12
Jeg har lige lavet en lille test.. den accepterer både True/False og 1/0..

Takker for points :-)

/theSurfer
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