---
title: "Ändra medlemmars behörighetsnivå"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/151692-ändra-medlemmars-behörighetsnivå"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "PixelFix"
published: "2006-09-24T12:19:09.000Z"
updated: "2006-09-24T16:49:38.000Z"
replies: 10
views: 557
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/151692-ändra-medlemmars-behörighetsnivå"
---

# Ändra medlemmars behörighetsnivå

## #1 — PixelFix, 2006-09-24T12:19Z

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>
			&nbsp;</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

Permalänk: https://www.webforum.nu/p/151692

## #2 — @nders, 2006-09-24T12:23Z

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å.

Permalänk: https://www.webforum.nu/p/1871210

## #3 — PixelFix, 2006-09-24T12:46Z

Hmm... men det har jag ju gjort. Eller har jag skrivit det på fel ställe?

Permalänk: https://www.webforum.nu/p/1871213

## #4 — emission, 2006-09-24T13:40Z

Kör en response.end direkt efter utskriften, så borde det lösa sig.

Gör gärna så här:

```
pid = cInt(trim(Request("pid")))
```

Permalänk: https://www.webforum.nu/p/1871230

## #5 — PixelFix, 2006-09-24T14:06Z

Lade till response.end och fick följande resultat:
SQL \> UPDATE Members SET level='2' WHERE IdNr=65

Det löste sig så tillvida att jag fick utskriften. Men "Syntax error in UPDATE statement" kvarstår.

Permalänk: https://www.webforum.nu/p/1871239

## #6 — emission, 2006-09-24T14:36Z

Är level verkligen ett strängvärde i databasen?

Permalänk: https://www.webforum.nu/p/1871246

## #7 — PixelFix, 2006-09-24T14:42Z

Tabellen Members i min databas har fälten:
IdNr...........Räknare
UserName...Text
Password....Text
Level..........Tal (Heltal)

Permalänk: https://www.webforum.nu/p/1871247

## #8 — swede, 2006-09-24T15:01Z

Ska det inte vara:

```php
SQL > UPDATE Members SET level=2 WHERE IdNr=65
```

Dvs inte level="2" utan level=2

Permalänk: https://www.webforum.nu/p/1871253

## #9 — PixelFix, 2006-09-24T15:12Z

Jo, jag skulle också vilja att det såg ut så.
Har även provat att ha fältet Level i textformat eftersom inga beräkningar ska göras. Jag skulle ju t.ex. kunna köra med behörighetsnivåerna Guld, Silver eller Brons. Men utan framgång.

Permalänk: https://www.webforum.nu/p/1871255

## #10 — @nders, 2006-09-24T16:25Z

Level är ett reserverat ord i Access. Byt namn på fältet.

<http://support.microsoft.com/kb/209187/>

Mvh

Permalänk: https://www.webforum.nu/p/1871273

## #11 — PixelFix, 2006-09-24T16:49Z

Jag tackar och bockar. Det var ordet Level som ställde till det.

Permalänk: https://www.webforum.nu/p/1871288

---

Tråden på webben: https://www.webforum.nu/amne/asp/151692-ändra-medlemmars-behörighetsnivå
