Avatar billede stefware Nybegynder
30. januar 2003 - 18:23 Der er 15 kommentarer og
2 løsninger

Kolonne def. som tal i Access DB giver fejl

Hej

I min database har jeg en kolonne defineret som Tal (grunden til dette er at jeg et andet sted bruger højeste værdi og lægger 1 til). Men det giver følgende fejl:

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

/litteratur/bog_udlaan.asp, line 13

Script:

<%

Response.Buffer = True
Response.Expires = 0

' Connection til database.    
    Set Con = Server.CreateObject( "ADODB.Connection" )
    DBPath = "DBQ=" & server.mappath("/log/litteratur.mdb") & "; password=test"
    Con.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & DBPath

    ' Hent fra databasen afhængig af værdien id fra URL
13 --->    strSQL = "select * from liste Where bog_id = '" & Request.Querystring("id") & "'"
    Set rs = Con.Execute(strSQL)

IF Request.Servervariables("Content_Length") > 0 THEN
    sqlOpdate = "UPDATE liste SET laaner_navn = '" & Request.Form("laaner_navn") & "', laane_dato = '" & Request.Form("laane_dato") & "', laaner_mail='" & Request.Form("laaner_mail") & "', udlant='1' WHERE bog_id='" & Request.form("id") & "'"
    Con.execute(sqlOpdate)
    Response.Redirect("ok.asp")
END IF
%>


<html>
<title>Bog udlån</title>
<head>
</head>
<body>
<dl>

<%
' Skriv personens data
Response.Write "<dt>Titel/forfatter:</dt><dd>" & rs("titel") & " " & rs("forfatter") & "</dd>"
Response.Write "<dt>Forlag:</dt><dd>" & rs("forlag") & " " & rs("udgivaar") & "</dd>"
Response.Write "<dt>Værdi:</dt><dd>" & rs("vaerdi") & "</dd>"
Response.Write "<dt>Kategori:</dt><dd>" & rs("kategori") & "</dd>"
Response.Write "<dt>Udlånt til:</dt><dd>" & rs("laaner_navn") & "</dd>"
%>

<form name="form" action="bog_udlaan.asp" method="POST" target="_self">
    <table border="0" width="600">
      <tr>
        <td height="22"></td>
        <td height="22">
          <select name="laaner_navn">
            <option value="Anette Gr&oslash;nborg Hansen">Anette Gr&oslash;nborg
            Hansen</option>
            <option value="Bente Enevoldsen">Bente Enevoldsen</option>
            <option value="Birgitte Winterberg">Birgitte Winterberg</option>
            <option value="Christina Bentzen">Christina Bentzen</option>
            <option value="Claus Krogh Madsen">Claus Krogh Madsen</option>
            <option value="Frank Scheving">Frank Scheving</option>
            <option value="Iben Holme Laursen">Iben Holme Laursen</option>
            <option value="Irene &Oslash;stergaard Madsen">Irene &Oslash;stergaard
            Madsen</option>
            <option value="Jahn O. Ruud">Jahn O. Ruud</option>
            <option value="Jens Hjortsh&oslash;j">Jens Hjortsh&oslash;j</option>
            <option value="Jytte Aagaard">Jytte Aagaard</option>
            <option value="Kirsten Haagen">Kirsten Haagen</option>
            <option value="Lone Kragh">Lone Kragh</option>
            <option value="Merete M&oslash;lgaard Jensen">Merete M&oslash;lgaard
            Jensen</option>
            <option value="Mona Bach">Mona Bach</option>
            <option value="Niels Fabricius Kilstrup">Niels Fabricius Kilstrup</option>
            <option value="Rune Lunell">Rune Lunell</option>
            <option value="Stefan R. Jacobsen">Stefan R. Jacobsen</option>
            <option value="Tina Ebler">Tina Ebler</option>
            <option value="Vita Bjerring">Vita Bjerring</option>
            <option value="Lars Bj&oslash;rn">Lars Bj&oslash;rn</option>
          </select>
        <input type="tekst" name="laane_dato" Value="<% Response.Write FormatDateTime(Now, vbLongDate)%>">
          <input type="text" name="laaner_mail" Value="@vh-marketing.dk">
          <input type="text" name="id" Value="<% Response.Write rs("bog_id")%>">

        </td>
      </tr>
      <tr>
        <td colspan="2" align="center">
          <input type="submit" value=" - SKRIV - ">
        </td>
      </tr>
    </table>
</form>
</dl>
<p><a href="liste.asp">Retur til listen</a></p>
</body>
</html>
<%
Con.Close
Set Con = Nothing
%>

Som jeg læser det skal der '' eller et eller andet omkring den sql???
Avatar billede stefware Nybegynder
30. januar 2003 - 18:25 #1
Filen der henter siden er:
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF" text="#000000">
<p>Udl&aring;n</p>
<p>Indtast bogens nummer </p>
<form method="get" action="bog_udlaan.asp">
  <input type="text" name="id">
<input type="submit" value="Hent">

</form>
</body>
</html>
Avatar billede medions Nybegynder
30. januar 2003 - 18:29 #2
13 --->    strSQL = "select * from liste Where bog_id = " & Request.Querystring("id")
    Set rs = Con.Execute(strSQL)

//>Rune
Avatar billede medions Nybegynder
30. januar 2003 - 18:31 #3
Hov.. sådan her:

strSQL = "select * from liste Where bog_id = " & Request.Querystring("id")
    Set rs = Con.Execute(strSQL)

//>Rune
Avatar billede stefware Nybegynder
30. januar 2003 - 18:35 #4
Er det fordi '" bliver set som tekst?

Nå men så får jeg følgende fejl?????

error '80020009'
Exception occurred.

/litteratur/bog_udlaan.asp, line 32


32--> Response.Write "<dt>Titel/forfatter:</dt><dd>" & rs("titel") & " " & rs("forfatter") & "</dd>"

Skal det så have en '""' omkring sig?
Avatar billede medions Nybegynder
30. januar 2003 - 18:37 #5
Ja.

Den anden fejl du får ved jeg ikke rigtig hvorfor du får, men det har ikke noget med det oprindelige spm du stilte...

//>Rune
Avatar billede stefware Nybegynder
30. januar 2003 - 18:38 #6
Underligt jeg satte ' ' omkring:
'" & rs("titel") & " " & rs("forfatter") & "'

Nu viser den det den skal men med den første linie pakket ind i ''?
Avatar billede medions Nybegynder
30. januar 2003 - 18:38 #7
Hvad mener du?

//>Rune
Avatar billede stefware Nybegynder
30. januar 2003 - 18:43 #8
Som vist her

Titel/forfatter:
'test test'
Forlag:
test test
osv.

Nå det er mindre væsentligt, når jeg vil opdatere nu skriver den:

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

/litteratur/bog_udlaan.asp, line 13

som er den først nævnte linie?

Har det noget at gøre med:

IF Request.Servervariables("Content_Length") > 0 THEN
    sqlOpdate = "UPDATE liste SET laaner_navn = '" & Request.Form("laaner_navn") & "', laane_dato = '" & Request.Form("laane_dato") & "', laaner_mail='" & Request.Form("laaner_mail") & "', udlant='1' WHERE bog_id='" & Request.form("id") & "'"
    Con.execute(sqlOpdate)
    Response.Redirect("ok.asp")
END IF
%>
Avatar billede medions Nybegynder
30. januar 2003 - 18:46 #9
IF Request.Servervariables("Content_Length") > 0 THEN
    sqlOpdate = "UPDATE liste SET laaner_navn = '" & Request.Form("laaner_navn") & "', laane_dato = '" & Request.Form("laane_dato") & "', laaner_mail='" & Request.Form("laaner_mail") & "', udlant='1' WHERE bog_id=" & Request.form("id")
    Con.execute(sqlOpdate)
    Response.Redirect("ok.asp")
END IF
%>

Prøv sådan..

//>Rune
Avatar billede stefware Nybegynder
30. januar 2003 - 18:50 #10
Giver samme fejl:

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

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

/litteratur/bog_udlaan.asp, line 13
Avatar billede medions Nybegynder
30. januar 2003 - 18:51 #11
IF Request.Servervariables("Content_Length") > 0 THEN
    sqlOpdate = "UPDATE liste SET laaner_navn = '" & Request.Form("laaner_navn") & "', laane_dato = '" & Request.Form("laane_dato") & "', laaner_mail='" & Request.Form("laaner_mail") & "', udlant='1' WHERE bog_id=" & Request.QueryString("id")
    Con.execute(sqlOpdate)
    Response.Redirect("ok.asp")
END IF
%>

Prøv sådan...

//>Rune
Avatar billede stefware Nybegynder
30. januar 2003 - 18:54 #12
Så laver den fejl i linie 17:

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

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

/litteratur/bog_aflevering.asp, line 17

IF Request.Servervariables("Content_Length") > 0 THEN
-->17    sqlOpdate = "UPDATE liste SET laaner_navn = '" & Request.Form("laaner_navn") & "', laane_dato = '" & Request.Form("laane_dato") & "', laaner_mail='" & Request.Form("laaner_mail") & "', udlant='1' WHERE bog_id=" & Request.QueryString("id")
    Con.execute(sqlOpdate)
    Response.Redirect("ok.asp")
END IF
%>
Avatar billede medions Nybegynder
30. januar 2003 - 18:57 #13
Prøv  selv lige at leg lidt med om der skal ' og ' omkring eller ikke! -jeg ved jo ikke hvordan du henter dine data'er osv.

//>Rune
Avatar billede stefware Nybegynder
30. januar 2003 - 23:06 #14
Koden endte sådanne her:

    ' Hent fra databasen afhængig af værdien id fra URL
    If request.form("id") = "" then
    strSQL = "select * from liste Where bog_id = " & Request.Querystring("id")
    Set rs = Con.Execute(strSQL)
    End if

IF Request.Servervariables("Content_Length") > 0 THEN
    sqlOpdate = "UPDATE liste SET laaner_navn = '" & Request.Form("laaner_navn") & "', laane_dato = '" & Request.Form("laane_dato") & "', laaner_mail='" & Request.Form("laaner_mail") & "', udlant=1 WHERE bog_id=" & Request.Form("id")
    Con.execute(sqlOpdate)
    Response.Redirect("ok.asp")
END IF

Dvs. if...end omkring strSQL og Request.Form("id") i sqlOpdate
Avatar billede stefware Nybegynder
30. januar 2003 - 23:07 #15
Nu hjalp du jo en del af vejen så du får naturligvis også noget for det!
Avatar billede medions Nybegynder
30. januar 2003 - 23:08 #16
Fair nok :o)
Thx 4 Poinz

//>Rune
Avatar billede stefware Nybegynder
30. januar 2003 - 23:12 #17
Jeg måtte omkring netcoders for at få den knækket. Heldigvis var der en som fik ideen med if...end det var jeg aldrig kommet på!
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

IT-JOB

Politiets Efterretningstjeneste

Data engineer til PET

Politiets Efterretningstjeneste

Platform Engineer hos PET