Avatar billede dashawk Nybegynder
28. december 2005 - 14:41 Der er 8 kommentarer

Data type mismatch in criteria expression.

Hey jeg sidder lige og arbejder med en nyheds database, men nu kan jeg ikke få det scribt som man kan bruge til at redigere en nyhed med til at virke. Det er det scribt som gemmer ens ændringer efter man har opdateret felterne. Jeg får denne fejl meddelelse:

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

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

/dmp/nyheder.asp, line 436

<% if mode = "edit" then
'Scribt der opdatere de redigerede informationer

'Opdaterer nyhed
Set rs = Server.CreateObject("ADODB.Recordset")
sql = "select * from nyheder where id = '" & "'"
rs.Open sql, conn, 1, 3
                                                   
if Request.ServerVariables("REQUEST_METHOD") = "POST" then
                               
'Opdaterer felterner
rs.update
rs("overskrift") = Server.HTMLEncode(Request("overskrift"))
rs("intro") = Server.HTMLEncode(Request("intro"))
rs("tekst") = Server.HTMLEncode(Request("tekst"))
rs("link") = Server.HTMLEncode(Request("link"))
rs("billedelille") = Server.HTMLEncode(Request("billedelille"))
rs("billedestort") = Server.HTMLEncode(Request("billedestort"))
rs.update
                                   
Response.Redirect("nyheder.asp")

end if
                               
rs.close
set rs = nothing

end i

%>

Den Linie den siger der er fejl i (line 436)er denne linie:
rs.Open sql, conn, 1, 3

Og Id er det autonummer som databasen giver. Er der nogle som har en forklaring?
Avatar billede mugs Novice
28. december 2005 - 14:50 #1
Har ikke forstand på ASP, men det er jo dine kriterier der er forskellige. Idet jeg antager at id er et numerisk felt, vil jeg prøve at ændre:

sql = "select * from nyheder where id = '" & "'"

til

sql = "select * from nyheder where id = " & ""

da der i Access ikke skal være '' omkring et numerisk kriterie
Avatar billede erikjacobsen Ekspert
28. december 2005 - 14:56 #2
Hvor er id-en henne? Hvor kommer den fra? Du skal noget i retning af

    sql = "select * from nyheder where id = " & id

Hvis du har en variabel med navnet id.
Avatar billede dashawk Nybegynder
28. december 2005 - 15:58 #3
I begge tilfælde får jeg fejlen:

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

[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'id ='.

/dmp/nyheder.asp, line 436
Avatar billede erikjacobsen Ekspert
28. december 2005 - 16:12 #4
Der er ingen, der kan hjælpe dig, hvis du ikke kan fortælle os hvor den "id" kommer fra.
Avatar billede dashawk Nybegynder
28. december 2005 - 16:30 #5
Den kommer fra scribtet hvor man redigere nyheden: (vil ikke lige poste det hele hvis det ikke er nødvendigt, men den åbner den sådan her:

<%   
Set rs = Conn.Execute("select * from nyheder where id = " & Request.QueryString("id"))
%>

Og når man submitter info sender den her dig videre:
           
<form method="post" action="nyheder.asp?mode=edit&id">
Avatar billede erikjacobsen Ekspert
28. december 2005 - 16:33 #6
Den sender ikke noget videre med <form method="post" action="nyheder.asp?mode=edit&id"> -  du skal have noget bag ved id.
Avatar billede dashawk Nybegynder
28. december 2005 - 16:42 #7
Nu har jeg prøvet med:
<form method="post" action="nyheder.asp?mode=edit&id=<%=rs("id")%>">

Men får stadig en:

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

[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'Id ='.

/dmp/nyheder.asp, line 436
Avatar billede dashawk Nybegynder
28. december 2005 - 16:48 #8
Har fundet ud af det nu, efter at ændre formen, skulle jeg bare ændre det til:

sql = "select * from nyheder where Id = " & Request.QueryString("id")

Så virkede det, tak for hjælpen
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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