Avatar billede Keld Nielsen Professor
19. november 2005 - 18:11 Der er 14 kommentarer og
1 løsning

Id fejl i en forespørgsel

Jeg får flg. fejl:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl, fordi der mangler en operator. i forespørgselsudtrykket "Id=".
/drev_c/Internet/ProLight-kunde-login/kunde-ret.asp, line 21

Når jeg afvikler flg. (uddrag):

        <%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=C:\Internet\ProLight-kunde-login\kunde.mdb"
Conn.Open DSN

SQL = "Select * FROM table_user WHERE Id=" & Session("Id")
Set rs = Conn.Execute(SQL)

Response.Write "Rettelse af:  "
%>
</h4>
        <form action="updateit.asp" method="post" name="dff_ret">
            <h1><font face="Verdana">Rettelse<input type="hidden" name="ID" value='<%=session("Id")%>'></font></h1>
osv osv

linie 21 er: Set rs = Conn.Execute(SQL)
Avatar billede erikjacobsen Ekspert
19. november 2005 - 18:16 #1
Session("Id") er tom
Avatar billede Keld Nielsen Professor
19. november 2005 - 18:18 #2
Jeg har disse par linier, i siden "før":

Set objKunder = Conn.Execute("select * from table_user order by Id asc")

Session("Id") = objKunder("Id")
Avatar billede erikjacobsen Ekspert
19. november 2005 - 18:22 #3
Der er vel ingen grund til at læse 2 gange fra den samme tabel. Det ser myyystisk ud, så vi må hellere se din kode.
Avatar billede erikjacobsen Ekspert
19. november 2005 - 18:23 #4
....ok, på siden før - knap så mystisk, men stadigvæk: mysteriet løses kun med mere kode ;)
Avatar billede Keld Nielsen Professor
19. november 2005 - 18:25 #5
Jamen det får du, noget lidt spagetti programmering - asp er absolut ikke min stærke side:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

    <head>
        <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
        <meta name="generator" content="">
        <title>Kunde oversigt</title>
        <link href="bryllup-for-asp.css" rel="stylesheet" type="text/css">
    </head>

    <body bgcolor="#E4D7CA">
        <%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=C:\Internet\ProLight-kunde-login\kunde.mdb"
Conn.Open DSN


%><h4><%
Response.Write "Oversigt over oprettede kunder" & "<br>"
Response.Write "tryk på linket, for rettelse!"   
%></h4><%


Set objKunder = Conn.Execute("select * from table_user order by Id asc")

Session("Id") = objKunder("Id")
Response.Write("<table border=0 width=650 align=left>")
Response.Write("<td align=left class=""textbold""><b>Ret</b></td>")
Response.Write("<td align=left class=""textbold""><b>Vis</b></td>")
Response.Write("<td align=left class=""textbold""><b>Slet</b></td>")
Response.Write("<td align=left class=""textbold""><b>Bruger</b></td>")
Response.Write("<td align=left class=""textbold""><b>Adgangskode</b></td>")
Response.Write("<td align=left class=""textbold""><b>Sti</b></td>")


Do While Not objKunder.EOF

Response.Write("</tr>")
Response.Write("<td align=left class=""text""><a href='kunde-ret.asp?id=" & objKunder("Id") & "'>Ret</a></td>")
Response.Write("<td align=left class=""text""><a href='valg.asp?id=" & objKunder("Id") & "'>Vis</a></td>")
Response.Write("<td align=left class=""text""><a href='delete.asp?id=" & objKunder("Id") & "'>Slet</a></td>")
Response.Write("<td align=left class=""text"">"&objKunder("brugernavn") & "</td>")
Response.Write("<td align=left class=""text"">"&objKunder("adgangskode")&"</td>")
Response.Write("<td align=left class=""text"">"&objKunder("placering")&"</td>")
Response.Write("</tr>")

objKunder.MoveNext
Loop
Response.Write("<td align=left class=""text""><a href='input.asp'>Opret ny</a></td>")
Response.Write("</tr>")
Response.Write("</table>")

ver igennem'

Conn.Close
Set Conn=nothing
%>
    </body>

</html>
Avatar billede erikjacobsen Ekspert
19. november 2005 - 18:46 #6
Det giver ikke meget mening at sætte den sessionvariabel for den første id du møder.
Mon ikke du skal fjerne linien på denne side, og på de efterfølgende sider bruge

  request.querystring("id")

for det er vel det du skal ud fra fx

Response.Write("<td align=left class=""text""><a href='valg.asp?id=" & objKunder("Id") & "'>Vis</a></td>")
Avatar billede Keld Nielsen Professor
19. november 2005 - 19:34 #7
Det giver desværre samme fejl, session har altid drillet mig !
Avatar billede erikjacobsen Ekspert
19. november 2005 - 20:41 #8
Det kommer jo så an på hvad du skriver.
Avatar billede Keld Nielsen Professor
19. november 2005 - 21:57 #9
Bl.a. sådan her. har jeg sat det ind:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

    <head>
        <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
        <meta name="generator" content="Adobe GoLive 6">
        <title>kunde-ret</title>
        <link href="skema-analyse.css" rel="stylesheet" media="screen">
    </head>

    <body bgcolor="#DCDCDC">
    <h4>   
        <%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=C:\Internet\ProLight-kunde-login\kunde.mdb"
Conn.Open DSN

'SQL = "Select * FROM table_user WHERE Id=" & Session("Id")
'Set rs = Conn.Execute(SQL)
request.querystring("id")
Response.Write "Rettelse af:  "
%>
</h4>
        <form action="updateit.asp" method="post" name="kunde_ret" id="kunde_ret">
            <h1><font face="Verdana">Rettelse<input type="hidden" name="ID" value='<%=session("Id")%>'></font></h1>
            <table width="500" border="0" cellspacing="2" cellpadding="0">
                <tr>
                    <td width="117">Bruger</td>
                    <td width="377"><input name="bruger" type="text" id="bruger" value='<%=rs("brugernavn")%>' size="40"></td>
                </tr>
                <tr>
                    <td>Adgangskode</td>
                    <td><input name="adgang" type="text" id="adgang" value='<%=rs("adgangskode")%>' size="40"></td>
                </tr>
                <tr>
                    <td>Placering</td>
                    <td><input name="placering" type="text" id="placering" value='<%=rs("placering")%>' size="70" ></td>
                </tr>
            </table>
            <h3><font face="Verdana">
            <input type="submit" name="submit" value="Godkend de indtastede data" tabindex="4">
            </font></h3>
            <p></p>
            <p></p>
    </form>
        <p></p>
    </body>

</html>
Avatar billede erikjacobsen Ekspert
19. november 2005 - 21:59 #10
Det hjælper ikke noget at skrive request.querystring("id") på det sted.
Du skal bruge det på de sider hvor du vil bruge id-et fra adresselinien.
Avatar billede Keld Nielsen Professor
19. november 2005 - 22:04 #11
Undskyld ....nu står jeg total af!

Hvad mener du med det ?
Avatar billede erikjacobsen Ekspert
19. november 2005 - 22:52 #12
Det ser ud til at være på den side, så ret

'SQL = "Select * FROM table_user WHERE Id=" & Session("Id")
'Set rs = Conn.Execute(SQL)
request.querystring("id")

til

SQL = "Select * FROM table_user WHERE Id=" & request.querystring("id")
Set rs = Conn.Execute(SQL)

og se hvad der sker
Avatar billede Keld Nielsen Professor
20. november 2005 - 08:52 #13
Man skal bare have fat i de rigtige mennesker ....masser af tak !

Smid et svar, og pointene bliver overført øjeblikkelig.
Avatar billede erikjacobsen Ekspert
20. november 2005 - 10:24 #14
Jeg samler slet ikke på point, tak.
Avatar billede Keld Nielsen Professor
20. november 2005 - 10:33 #15
Åhhh, det er rigtigt!
...men det føles lidt forkert selv at tage pointene.
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