Avatar billede dj-sejler Praktikant
11. oktober 2003 - 16:10 Der er 14 kommentarer og
1 løsning

opdatere række i accessdatabase

Hej...
JEg får følgende fejl fra min side når jeg prøver at opdatere min database via en hp:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'Id ='.

/bs/v3/sider/member/ret/linkret.asp, line 89

Men jeg forstår det ikke, jeg mener jeg har angivet en id:

Men her er scriptet:


<%
response.Buffer = true
response.expires = 0
%>

<%
if session("bsbrugernavn") = "" and session("bsbrugerlevel") = "" and session("bsnavn") = "" then
Response.redirect("java script:window.close(best);")
end if
%>

<html>
<head>
<base target="best-hoved">
<link rel=stylesheet href="../../../bs.css" type="text/css">
<title></title>

</head>
<body>


<table>
    <tr>
        <td align="left">
       
        <table align="left" valign="top" width="500">
            <tr>
                <td align="left" valign="top" class="stor" height="30">
                    <u><b>Link</b></u>
                </td>
            </tr>
           
<%
If Request.Form("Update") <> "" Then
    strError = ""
    strKat = Trim(Request.Form("Kat"))
    strLink = Trim(Request.Form("Link"))
    strTitel = Trim(Request.Form("Titel"))
    strBrugernavn = session("bsnavn")
    strBrugerid = session("bsid")

    If Len(strKat) = 0 Then
        strError = "Du skal vælge en kategori!"
    ElseIf Len(strLink) = 0 Then
        strError = "Du skal skrive en gyldig internetadresse!"
    ElseIf Len(strTitel) = 0 Then
        strError = "Du skal skrive et navn/overskrift til linket!"
    ElseIf Len(strBrugerid) = 0 Then
        strError = "Du er vidst ikke logget ind?!"
    End If
        If Len(strError) = 0 Then

        Set rstemp = Server.CreateObject("ADODB.Recordset")
        strSQL = "SELECT * FROM link WHERE id = " & Request.form("id")
        strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("../../../../db/master.mdb")
        rstemp.Open strSQL, strDSN, 1, 3
        If NOT (rstemp.BOF Or rstemp.EOF) Then

            rstemp.update
            rstemp("Kat") = strKat
            rstemp("Link") = strLink
            rstemp("Titel") = strTitel
            rstemp("Brugernavn") = strBrugernavn
            rstemp("Brugerid") = strBrugerid
            rstemp.Update
        End If
        rstemp.Close
        Set rstemp = Nothing
        Response.Redirect("link.asp")
    Else
        strError = "<p><font face=verdana size=1 color=#FFFFFF><b>"& strError &"</b></font></p>"
        strMode = "update"
    End If
End If
%>

<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath ("../../../../db/master.mdb")
Conn.Open DSN

' Hent fra databasen afhængig af værdien id fra URL
SQL = "Select * From Link Where Id = " & Request.QueryString("id")
Set rstemp = Conn.Execute(SQL)  <-- linie 89

    strId = rstemp("id")
    strKat = rstemp("Kat")
    strLink = rstemp("Link")
    strTitel = rstemp("Titel")
%>

            <tr>   
                <td align="center" valign="top">
               
                    <form method="POST" action="linkret.asp">               
                    <table width="400" height="100%">
                        <tr>
                            <td colspan="2" align="center" height="25" width="100%"><%=strError%></td>
                        </tr>
                       
                        <tr>
                            <td align="left" width="40%">Linkid:</td>
                            <td align="left"><%=strId%></td>
                        </tr>
                       
                        <tr>
                            <td width="40%" class="">Kategori:</td>
                            <td width="60%">
                                <select name="Kat" tabindex="1" value="<%=strKat%>">
                                <option value="kommune">Kommunen</option>
                                <option value="klub">Sejlklub</option>
                                <option value="kklub">Klasseklub</option>
                                <option value="maritim">Maritim</option>
                                </select>
                            </td>
                        </tr>
                       
                        <tr>
                            <td align="left" width="40%">Link:</td>
                            <td align="left"><input type="text" name="Link" size="28" class="box" tabindex="2" value="<%=strLink%>"></td>
                        </tr>
                       
                        <tr>
                            <td align="left" width="40%">Titel:</td>
                            <td align="left"><input type="text" name="titel" size="28" class="box" tabindex="4" value="<%=strTitel%>"></td>
                        </tr>
                       
                        <tr>
                            <td width="40%">&nbsp;</td>
                            <td width="100%" align="left">
                                <input type="submit" value="  Send  " name="Add" class="box" tabindex="4">&nbsp;&nbsp;
                                <input type="button" value="  Fortryd  " name="Annuller" class="box" onClick="java script:location.href='link.asp'" tabindex="5">
                            </td>
                        </tr>
                       
                    </table>
                    </form>
                   


                </td>
            </tr>

    <%
    rstemp.close
    set rstemp = nothing
    %>

                </td>
            </tr>
        </table>
       
        </td>
    </tr>
</table>

</body>
Avatar billede erikjacobsen Ekspert
11. oktober 2003 - 16:25 #1
Du har ikke et felt i din form der hedder "id", så Request.form("id") er tom.
Avatar billede keysersoze Ekspert
11. oktober 2003 - 16:25 #2
der _er_ højst sandsynligt ikke et id - men for en sikkerheds skyld prøv dette og fortæl os hvad der så står;

SQL = "Select * From Link Where Id = " & Request.QueryString("id")
response.write sql
response.end
Set rstemp = Conn.Execute(SQL)
Avatar billede dj-sejler Praktikant
11. oktober 2003 - 16:33 #3
jamen første gang den loader siden er det rigtig nok... så den viser den rigtige id
med tilføjelsen viser den bare ikke andet...

Problemet kommer først når der er rettet i dataen og den nye data skal gemmes i databasen
Avatar billede erikjacobsen Ekspert
11. oktober 2003 - 16:42 #4
Ja, fordi dit "id" ikke er i formen, så findes det ikke på den side det skal bruges.
Avatar billede dj-sejler Praktikant
11. oktober 2003 - 16:45 #5
hmm... hvordan får jeg så det da?
Avatar billede erikjacobsen Ekspert
11. oktober 2003 - 16:48 #6
Du kunne lave et hidden felt i formen med navn "id" og den værdi du har som id.
Det skulle kunne klare det.
Avatar billede dj-sejler Praktikant
11. oktober 2003 - 16:50 #7
jeg har da allerede et felt i formen der hedder id?!?
skal det så laves om eller?!?
Jeg tror ikke jeg er helt med
Avatar billede erikjacobsen Ekspert
11. oktober 2003 - 16:53 #8
HVor har du det felt? Du skriver vist nummeret ud, men du har det da ikke i
et felt - så vidt jeg kan se...
Avatar billede dj-sejler Praktikant
11. oktober 2003 - 16:54 #9
<tr>
<td align="left" width="100%%" colspan="2"><input type="hidden" value="<%=strId%>"></td>
</tr>

Jeg har tilføjet/ændret den til dette i <form>
Avatar billede erikjacobsen Ekspert
11. oktober 2003 - 16:56 #10
Den har li'som ikke et navn ;)
Avatar billede erikjacobsen Ekspert
11. oktober 2003 - 16:57 #11
Og iøvrigt behøver du ikka afsætte plads til den i din tabel, den er "hidden"
og helt usynlig.
Avatar billede dj-sejler Praktikant
11. oktober 2003 - 17:00 #12
<input type="hidden" value="<%=strId%>" name="id">
Avatar billede dj-sejler Praktikant
11. oktober 2003 - 17:11 #13
nu virker det...
Du skal lige svare... med mindre jeg bare skal tage pointene selv ;)
Avatar billede erikjacobsen Ekspert
11. oktober 2003 - 17:27 #14
Nah, jeg har da vist hjulpet en anelse ;)
Avatar billede dj-sejler Praktikant
11. oktober 2003 - 17:30 #15
okay da...
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