Avatar billede asker Nybegynder
08. oktober 2001 - 15:58 Der er 24 kommentarer og
1 løsning

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

Jeg kan ikke få min dele og save funktion til at virke

Jeg får den her fejl når jeg vil delete

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

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

/databaser/test/xx/defaultform.asp, line 157
Avatar billede keysersoze Ekspert
08. oktober 2001 - 16:02 #1
hvordan ser din sql + omkringliggende linier ud?
Avatar billede asker Nybegynder
08. oktober 2001 - 16:07 #2
Her kommer hele koden:

<!--#include File =\"globalsub.asp\"-->
<%

cmd = Request.QueryString(\"cmd\")
Session(\"Sagsnr\") = Request.QueryString(\"Sagsnr\")

Set conntemp = server.CreateObject(\"adodb.Connection\")
conntemp.open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & Server.MapPath (\"Ejendomme.mdb\")

Select Case cmd

Case \"SaveNew\"
FieldStr=\" (\"
ValueStr = \" VALUES (\"
\'dvs at får at sve virker skal sagsnr værre her\'
If Request.QueryString(\"Sagsnr\")<>\"\" Then
  FieldStr=FieldStr+ \"Sagsnr, \"
  ValueStr=ValueStr+\"\'\"+FixDbFieldSave(Request.QueryString(\"Sagsnr\"))+\"\', \"
End if
If Request.QueryString(\"Beliggenhed\")<>\"\" Then
  FieldStr=FieldStr+ \"Beliggenhed, \"
  ValueStr=ValueStr+\"\'\"+FixDbFieldSave(Request.QueryString(\"Beliggenhed\"))+\"\', \"
End if
If Request.QueryString(\"Kontant\")<>\"\" Then
  FieldStr=FieldStr+ \"Kontant, \"
  ValueStr=ValueStr+\"\'\"+FixDbFieldSave(Request.QueryString(\"Kontant\"))+\"\', \"
End if
If Request.QueryString(\"Kvm\")<>\"\" Then
  FieldStr=FieldStr+ \"Kvm, \"
  ValueStr=ValueStr+\"\'\"+FixDbFieldSave(Request.QueryString(\"Kvm\"))+\"\', \"
End if
If Request.QueryString(\"Garage\")<>\"\" Then
  FieldStr=FieldStr+ \"Garage, \"
  ValueStr=ValueStr+\"\'\"+FixDbFieldSave(Request.QueryString(\"Garage\"))+\"\', \"
End if
If Request.QueryString(\"Nysag\")<>\"\" Then
  FieldStr=FieldStr+ \"Nysag, \"
  ValueStr=ValueStr+Request.QueryString(\"Nysag\")+\", \"
End if
If Request.QueryString(\"Solgt\")<>\"\" Then
  FieldStr=FieldStr+ \"Solgt, \"
  ValueStr=ValueStr+Request.QueryString(\"Solgt\")+\", \"
End if
If Request.QueryString(\"Kommune\")<>\"\" Then
  FieldStr=FieldStr+ \"Kommune, \"
  ValueStr=ValueStr+\"\'\"+FixDbFieldSave(Request.QueryString(\"Kommune\"))+\"\', \"
End if
FieldStr = Mid(FieldStr, 1, Len(FieldStr) - 2) + \")\"
ValueStr = Mid(ValueStr, 1, Len(ValueStr) - 2) + \");\"
SqlStr = \"Insert Into Kunde\" + FieldStr + ValueStr
conntemp.Execute (SqlStr)
conntemp.Close
Set conntemp = Nothing
response.redirect \"defaultform.asp\"

Case \"Save\"
SqlStr = \"UPDATE Kunde SET \"
If Request.QueryString(\"Beliggenhed\") <> \"\" Then
  Sqlstr=SqlStr+\"Beliggenhed=\'\"+FixDbFieldSave(Request.QueryString(\"Beliggenhed\")) + \"\', \"
End if
If Request.QueryString(\"Kontant\") <> \"\" Then
  Sqlstr=SqlStr+\"Kontant=\'\"+FixDbFieldSave(Request.QueryString(\"Kontant\")) + \"\', \"
End if
If Request.QueryString(\"Kvm\") <> \"\" Then
  Sqlstr=SqlStr+\"Kvm=\'\"+FixDbFieldSave(Request.QueryString(\"Kvm\")) + \"\', \"
End if
If Request.QueryString(\"Garage\") <> \"\" Then
  Sqlstr=SqlStr+\"Garage=\'\"+FixDbFieldSave(Request.QueryString(\"Garage\")) + \"\', \"
End if
If Request.QueryString(\"Nysag\") <> \"\" Then
  Sqlstr=SqlStr+\"Nysag=\"+Request.QueryString(\"Nysag\") + \", \"
End if
If Request.QueryString(\"Solgt\") <> \"\" Then
  Sqlstr=SqlStr+\"Solgt=\"+Request.QueryString(\"Solgt\") + \", \"
End if
If Request.QueryString(\"Kommune\") <> \"\" Then
  Sqlstr=SqlStr+\"Kommune=\'\"+FixDbFieldSave(Request.QueryString(\"Kommune\")) + \"\', \"
End if
SqlStr = Mid(SqlStr, 1, Len(SqlStr) - 2)
SqlStr = SqlStr + \" WHERE Sagsnr=\"+ request.querystring(\"Sagsnr\")+ \";\"
conntemp.Execute (SqlStr)
SqlStr =\"SELECT * FROM Kunde ORDER BY Sagsnr\"
Set rs = conntemp.Execute(SqlStr)
rs.MoveFirst
a = 1
While rs.EOF <> True And a < Session(\"CurRec\")
  a = a + 1
  rs.MoveNext
Wend

Case \"\"
SqlStr = \"SELECT * FROM Kunde ORDER BY Sagsnr\"
Set rs = conntemp.Execute(SqlStr)
If rs.EOF = True Then
  Response.redirect \"defaultform.asp?cmd=New\"
End If
rs.MoveFirst
a = 0
While rs.EOF <> True
  a = a + 1
  rs.MoveNext
Wend
Session(\"NumOfRecs\") = a
Session(\"CurRec\") = 1
rs.MoveFirst

Case \"First\"
Session(\"CurRec\") = 1
SqlStr = \"SELECT * FROM Kunde ORDER BY Sagsnr\"
Set rs = conntemp.Execute(SqlStr)
rs.MoveFirst

Case \"Last\"
Session(\"CurRec\") = Session(\"NumOfRecs\")
SqlStr = \"SELECT * FROM Kunde ORDER BY Sagsnr\"
Set rs = conntemp.Execute(SqlStr)
rs.MoveFirst
a = 1
While a < Session(\"NumOfRecs\")
  a = a + 1
  rs.MoveNext
Wend

Case \"Prev\"
Session(\"CurRec\") = Session(\"CurRec\") - 1
If Session(\"CurRec\") <= 0 Then
  Session(\"CurRec\") = Session(\"NumOfRecs\")
End If
SqlStr = \"SELECT * FROM Kunde ORDER BY Sagsnr\"
Set rs = conntemp.Execute(SqlStr)
rs.MoveFirst
a = 1
While rs.EOF <> True And a < Session(\"CurRec\")
  a = a + 1
  rs.MoveNext
Wend

Case \"Next\"
Session(\"CurRec\") = Session(\"CurRec\") + 1
If Session(\"CurRec\") > Session(\"NumOfRecs\") Then
  Session(\"CurRec\") = 1
End If
SqlStr = \"SELECT * FROM Kunde ORDER BY Sagsnr\"
Set rs = conntemp.Execute(SqlStr)
rs.MoveFirst
a = 1
While rs.EOF <> True And a < Session(\"CurRec\")
  a = a + 1
  rs.MoveNext
Wend

Case \"Del\"
SqlStr = \"DELETE FROM Kunde WHERE Sagsnr=\"+ Session(\"Sagsnr\")+ \";\"


\'SqlStr = \"DELETE FROM Kunde WHERE Sagsnr=\" & request.querystring(\"Sagsnr\") & \";\"
conntemp.Execute (SqlStr)
conntemp.Close
Set conntemp = Nothing
response.redirect \"defaultform.asp\"





Case \"Fromlist\"
Session(\"CurRec\") = 1
SqlStr1 = \"SELECT Count(Sagsnr) As TotalCount From Kunde;\"
Set Rs1 = conntemp.Execute(SqlStr1)
Session(\"NumOfRecs\") = Rs1(\"TotalCount\")
Rs1.Close
Set Rs1 = Nothing
SqlStr = \"SELECT * FROM Kunde ORDER BY Sagsnr\"
Set rs = conntemp.Execute(SqlStr)
rs.MoveFirst
While Trim(Session(\"Sagsnr\")) <> Trim(CStr(rs(\"Sagsnr\")))
  Session(\"CurRec\") = Session(\"CurRec\") + 1
  rs.MoveNext
Wend
End Select

If cmd <> \"New\" And cmd<>\"Copy\" Then
  Session(\"Sagsnr\") = server.Urlencode(rs(\"Sagsnr\"))
Session(\"Beliggenhed\") = FixDbField(rs(\"Beliggenhed\"))
Session(\"Kontant\") = FixDbField(rs(\"Kontant\"))
Session(\"Kvm\") = FixDbField(rs(\"Kvm\"))
Session(\"Garage\") = FixDbField(rs(\"Garage\"))
Session(\"Nysag\") = FixDbField(rs(\"Nysag\"))
Session(\"Solgt\") = FixDbField(rs(\"Solgt\"))
Session(\"Kommune\") = FixDbField(rs(\"Kommune\"))
rs.Close
Set rs = Nothing
End if

If cmd=\"New\" Then
  Session(\"Sagsnr\") = \"\"
  Session(\"Beliggenhed\") = \"\"
  Session(\"Kontant\") = \"\"
  Session(\"Kvm\") = \"\"
  Session(\"Garage\") = \"\"
  Session(\"Nysag\") = \"\"
  Session(\"Solgt\") = \"\"
  Session(\"Kommune\") = \"\"
End If
conntemp.Close
Set conntemp = Nothing
%>
<html>
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1252\">
<meta name=\"GENERATOR\" content=\"Microsoft FrontPage 4.0\">
<title>AdminTest</title>
<base target=\"_self\">
<link rel=\"stylesheet\" type=\"text/css\" href=\"globalcss.css\">

</head>
<body>

<form method=\"GET\" action=\"defaultform.asp\" name=\"Kunde\">
<div align=\"left\">
<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">
  <tr>
  <td>Sagsnr</td>
  <td><input type=\"text\" name=\"Sagsnr\" size=\"15\"  Value=\"<%=Session(\"Sagsnr\")%>\"></td>
  </tr>
  <tr>

  <td>Beliggenhed</td>
  <td><input type=\"text\" name=\"Beliggenhed\" size=\"100\"  Value=\"<%=Session(\"Beliggenhed\")%>\"></td>
  </tr>
  <tr>
  <td>Kontant</td>
  <td><input type=\"text\" name=\"Kontant\" size=\"50\"  Value=\"<%=Session(\"Kontant\")%>\"></td>
  </tr>
  <tr>
  <td>Kvm</td>
  <td><input type=\"text\" name=\"Kvm\" size=\"50\"  Value=\"<%=Session(\"Kvm\")%>\"></td>
  </tr>
  <tr>
  <td>Garage</td>
  <td><input type=\"text\" name=\"Garage\" size=\"50\"  Value=\"<%=Session(\"Garage\")%>\"></td>
  </tr>
  <tr>
  <td>Nysag</td>
<td>
<%
Response.write CreateYesNo(\"True\",\"False\",\"True\",\"False\",\"Nysag\",Session(\"Nysag\"),\"False\")
%>
</td>
  </tr>
  <tr>
  <td>Solgt</td>
<td>
<%
Response.write CreateYesNo(\"True\",\"False\",\"True\",\"False\",\"Solgt\",Session(\"Solgt\"),\"False\")
%>
</td>
  </tr>
  <tr>
  <td>Kommune</td>
  <td><input type=\"text\" name=\"Kommune\" size=\"150\"  Value=\"<%=Session(\"Kommune\")%>\"></td>
  </tr>
</table>
</div>
<% If cmd<>\"New\"  and cmd<>\"Copy\" then %>
<input type=\"button\" value=\"¦&lt;\" onClick=\"parent.location=\'defaultform.asp?cmd=First&Sagsnr=<%=Session(\"Sagsnr\")%>\'\"<%=ShowTextOnPic(\"Første rekord\")%>Class=\"Button\">
<input type=\"button\" value=\"&lt;&lt;\" onClick=\"parent.location=\'defaultform.asp?cmd=Prev&Sagsnr=<%=Session(\"Sagsnr\")%>\'\"<%=ShowTextOnPic(\"Move one record backwards\")%>Class=\"Button\">
<input type=\"button\" value=\"Delete\" onClick=\"parent.location=\'defaultform.asp?cmd=Del&Sagsnr=<%=Session(\"Sagsnr\")%>\'\"<%=ShowTextOnPic(\"Click to delete the current record\")%>Class=\"Button\">
<input type=\"text\" size=\"8\" Value=\"<%=Session(\"CurRec\")%> of <%=Session(\"NumOfRecs\")%>\" Class=\"Button\">
<input type=\"submit\" value=\"Save\"<%=ShowTextOnPic(\"Click here to saves you changes\")%>Class=\"Button\">
<input type=\"button\" value=\"New\" onClick=\"parent.location=\'defaultform.asp?cmd=New&Sagsnr=<%=Session(\"Sagsnr\")%>\'\"<%=ShowTextOnPic(\"Click to create a new record\")%>Class=\"Button\">
<input type=\"button\" value=\"Copy\" onClick=\"parent.location=\'defaultform.asp?cmd=Copy&Sagsnr=<%=Session(\"Sagsnr\")%>\'\"<%=ShowTextOnPic(\"Click to go copy the current record\")%>Class=\"Button\">
<input type=\"button\" value=\"Search\" onClick=\"parent.location=\'defaultsearch.asp\'\"<%=ShowTextOnPic(\"Click search in the database\")%>Class=\"Button\">
<input type=\"button\" value=\"&gt;&gt;\" onClick=\"parent.location=\'defaultform.asp?cmd=Next&Sagsnr=<%=Session(\"Sagsnr\")%>\'\" <%=ShowTextOnPic(\"Click to go to next record\")%>Class=\"Button\">
<input type=\"button\" value=\"&gt;¦\" onClick=\"parent.location=\'defaultform.asp?cmd=Last&Sagsnr=<%=Session(\"Sagsnr\")%>\'\"<%=ShowTextOnPic(\"Click to go to the last record\")%>Class=\"Button\">
<br><input type=\"button\" value=\"Back to menu\" onClick=\"parent.location=\'default.asp\'\"<%=ShowTextOnPic(\"Click to go back to the main menu\")%>Class=\"Button\">
<input type=\"button\" value=\"ListView\" onClick=\"parent.location=\'defaultlist.asp\'\"<%=ShowTextOnPic(\"Click here to view the records in a listview\")%>Class=\"Button\">


<input type=\"Hidden\"name=\"cmd\" value=\"Save\">
<% Else %>
<input type=\"submit\" value=\"Save\"<%=ShowTextOnPic(\"Click to save the new record\")%>Class=\"Button\">
<input type=\"button\" value=\"Cancel\" onClick=\"parent.location=\'defaultform.asp\'\"<%=ShowTextOnPic(\"Click cancel creating a new record\")%>Class=\"Button\">
<input type=\"hidden\" name=\"cmd\" value=\"SaveNew\">
<%End If %>
</form>

</body>
</html>
Avatar billede nute Nybegynder
08. oktober 2001 - 16:07 #3
Feilmeddelelsen betyr at du prøver å referer til et felt i din tabell som noe annet enn det det er. Typiske feil i denne forbindelse er at du prøver å forespørre et tekstfelt som et nummerfelt, og et nummerfelt som et tekstfelt. En måte å raskt finne ut om du har gjort dette, er :

- Alle dine tekstfelt skal omsluttes av enkeltplinger \'
- Dine nummerfelt skal *ikke* ha enkeltplinger.

Eksempel:

SELECT * FROM tabel WHERE tekstkolonne = \'tekst\' AND nummerkolonne = 10

/nute
Avatar billede eagleeye Praktikant
08. oktober 2001 - 16:11 #4
Prøv denne:

SqlStr = \"DELETE FROM Kunde WHERE Sagsnr=\'\"& Session(\"Sagsnr\")& \"\';\"
Avatar billede eagleeye Praktikant
08. oktober 2001 - 16:14 #5
I spm  http://www.eksperten.dk/spm/118520  var sagsnr=0500 altså en tekst streng og ikke et tal.
Avatar billede nute Nybegynder
08. oktober 2001 - 16:17 #6
asker >> ajajajaj...det er noen grove feil i din fil. Du konkatinerer (setter sammen strenger) ved å bruke +. i VBScript skal du bruke & . Det er merkelig at den i det hele tatt kommer ned til linje 157

/nute
Avatar billede eagleeye Praktikant
08. oktober 2001 - 16:19 #7
Det andet spm var naturlig vis http://www.eksperten.dk/spm/118429
Avatar billede eagleeye Praktikant
08. oktober 2001 - 16:20 #8
Asker>>

nu har mortrr, nute og jeg skrevet det til dig at du skal lave + om til & når det er tekst strenge du ligger sammen.
Avatar billede eagleeye Praktikant
08. oktober 2001 - 16:21 #9
Er sagsnr defineret som tal elle tekst i din database?
Avatar billede asker Nybegynder
08. oktober 2001 - 16:29 #10
Udemærket eagleeye du har klaret første del af mit problem med

SqlStr = \"DELETE FROM Kunde WHERE Sagsnr=\'\"& Session(\"Sagsnr\")& \"\';\"

Tak

Mit andet problem er når jeg saver

Så får jeg denne fejl:

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

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

/databaser/test/xx/defaultform.asp, line 81
Avatar billede asker Nybegynder
08. oktober 2001 - 16:30 #11
eagleeye du fåpr lige 100 point for første del Jeg regner med du bliver hængende og hjælper med resten
Avatar billede asker Nybegynder
08. oktober 2001 - 16:32 #12
Sagsnr er den primære nøgle og et tekst felt

Fordi det skal kunné ideholde både tekst og tal
Avatar billede nute Nybegynder
08. oktober 2001 - 16:33 #13
asker >> hvis du *leser* de innlegg du får her inne, så vil du 99% sikkert finne svaret i min posting 08/10 2001 16:07:33 


men....hvorfor fanden aksepterer du et svar når det ikke løser ditt problem ?????
Avatar billede eagleeye Praktikant
08. oktober 2001 - 16:33 #14
tak .. Ja

Det er vist det samme igen, omkring linie 81-83

SqlStr = SqlStr + \" WHERE Sagsnr=\'\"& request.querystring(\"Sagsnr\")& \"\';\"
Avatar billede eagleeye Praktikant
08. oktober 2001 - 16:34 #15
det er linie 81.
Avatar billede eagleeye Praktikant
08. oktober 2001 - 16:35 #16
Når det er tekst-felt i databasen skal der \' omkring datane i SQL-sætningen.
Avatar billede asker Nybegynder
08. oktober 2001 - 16:37 #17
I kan selv prøve

http://www.vipiil.dk/databaser/test/xx/defaultform.asp

for jeg får foskellige fejl..
Avatar billede nute Nybegynder
08. oktober 2001 - 16:39 #18
asker >> enten så er du blind, eller så er du direkte likegyldig til hva løsningen er. les mitt innlegg @ 08/10 2001 16:07:, eagleeye sitt innlegg @ 08/10 2001 16:35:58, så har du ditt svar !!!!

(( men ettersom du tydeligvis ignorerer mine fullstendig korrekte innlegg så er det vel ikke noe å gjøre ved det ))

/nute
Avatar billede eagleeye Praktikant
08. oktober 2001 - 16:40 #19
Kan du ikke prøve at lave en response.write (SqlStr) i linie 81 lige føre conn.execute
Avatar billede nute Nybegynder
08. oktober 2001 - 16:43 #20
asker >> hva skjedde med denne løsningen: http://www.eksperten.dk/spm/96898 ?? Det er jo samme problem løst for over 2 måneder siden. Hvis du sitter med det samme problem stadigvekk, så bør du kanskje revurdere dine evner som ASP programmør.

/nute
Avatar billede eagleeye Praktikant
08. oktober 2001 - 16:49 #21
Nu ser det bedre ud.

Men stadig en ting:
+ ligger tal sammen
& ligger strings samme
Avatar billede asker Nybegynder
08. oktober 2001 - 16:59 #22
Mange tak for hjælpen eagleeye

Og nute du har et problem (men du er sku dygtig til ASP)

Så du havde fortjent de 100 point
Avatar billede nute Nybegynder
08. oktober 2001 - 17:01 #23
asker >> \"Og nute du har et problem\" ??? hva mener du ???
Avatar billede asker Nybegynder
08. oktober 2001 - 17:09 #24
Du er så retskaffen>> at det ødelægger dit ellers så gode humør...
Avatar billede nute Nybegynder
08. oktober 2001 - 17:35 #25
hmmm....rettskaffen...er det plutselig en dårlig egenskap ??

jeg forventer bare at når man svarer korrekt så blir iallefall svarene kommentert. Jeg var den *første* som postet et forslag med noen konkrete løsningsforslag. De ble aldri kommentert. Deretter var jeg igjen den *første* som postet et forslag om at du skulle konkatinere dine strenger med & istedenfor +. Det fikk *heller* ingen kommentar. Deretter avviser du mine svar og aksepterer eagleeye sitt (som egentlig ikke svarte noe annet enn hva jeg gjorde) *uten* at du kom med en kommentar på *hva* som eventuelt var galt med mine svar. Ikke *en* gang i denne thread har du kommentert mine innlegg...er det så merkelig at jeg \"brokker\" meg ??

Om jeg hadde fortjent 100 poeng eller ikke...vel...jeg er forsåvidt likeglad med pointsene, jeg har da nok av dem, men det jeg ikke tolererer, er at man blir totalt oversett. Jeg vet iallefall at jeg kommer til å tenke meg om to ganger før jeg svarer på et av dine innlegg neste gang. I følge din historie har du jo også en tendens til å opprette spørsmål med mange point, men etter lange threads, så lukker du spørsmålet og tar pointsene selv...tsk...tsk. Ikke akkurat noe god behandling av dem som bruker lang tid på å hjelpe deg.

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