Skriv ut den färdiga SQL-frågan, så är det lättare att felsöka. Istället för att exekvera, response.write sqlstring alltså.
Har kikat runt på forumet men inte hittat något inlägg som kan vara till hjälp.
Har en tabell i en access-databas med registrerade medlemmar.
Medlemmar som har registrerat sig får automatiskt behörighets-
nivå 3, som i det här fallet är den lägsta nivån.
På min administrationssida vill jag kunna ändra behörighets-
nivå på en specifik användare.
Sidan där jag ändrar användarens behörighet ser ut enligt följande:
<!-- #INCLUDE FILE="checksessionstatus.asp" -->
<%
IdNr = TRIM( Request( "pid" ) )
Set Con = Server.CreateObject( "ADODB.Connection" )
Set RS = Server.CreateObject("ADODB.Recordset")
Con.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\dbq\klypan.mdb"
SqlString = "SELECT * FROM Members WHERE IdNr=" & IdNr
RS.Open sqlString, Con
%>
<link rel=stylesheet href="mall_1.css" type="text/css">
<form method="post" action="adm_edit_members.asp?pid=<%=RS("Idnr")%>">
<br>
<a href="adm_visa_members.asp" target="middleframe"><img src="bilder/pil-v.gif" border="0"></a>
<a href="logout.asp" target="middleframe"><img src="bilder/kryss.gif" border="0" alt="Logga ut"></a>
<table border="1" cellpadding="0" cellspacing="0">
<tr>
<td colspan="2">
<b>Ändra behörighet</b></td>
</tr>
<tr>
<td>
Användarnamn:</td>
<td>
<%=RS("UserName")%></td>
</tr>
<tr>
<td>
Lösenord:</td>
<td>
<%=RS("Password")%></td>
</tr>
<tr>
<td>
Behörighet:</td>
<td>
<input name="level" size="5" value="<%=RS("Level")%>"></td>
</tr>
<tr>
<td>
</td>
<td>
<input type="submit" value="Uppdatera"></td>
</tr>
</table>
</form>
<%
Con.Close
Set Con = Nothing
%>
Sidan där själva ändringen i databastabellen ska utföras ser ut enligt följande:
<%
FUNCTION fixQuotes( theString )
fixQuotes = REPLACE( theString, "'", "''" )
END FUNCTION
pid = TRIM( Request( "pid" ) )
level = TRIM( Request( "level" ) )
If level = "" THEN
level = "3"
End If
Set Con = Server.CreateObject( "ADODB.Connection" )
Con.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\dbq\klypan.mdb"
SQLString = "UPDATE Members SET " &_
"level='" & fixQuotes(level) & "' WHERE IdNr=" & pid
response.write "SQL>" & SQLString & "<br>"
Con.Execute SQLString
Con.Close
Set Con = Nothing
Response.Redirect( "adm_administrerings.asp" )
%>
Men det är här allt slutar att fungera.
Får följande felmeddelande:
HTTP 500.100 - Internal Server Error - ASP error
Internet Information Services
--------------------------------
Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access Driver] Syntax error in UPDATE statement.
/klypan/adm_edit_members.asp, line 19
Page:
POST 7 bytes to /klypan/adm_edit_members.asp
POST Data:
level=2
------------------
:q
Vad har jag missat? Vad har jag gjort fel?
Vilken ytterligare information behöver ni?
