Hej Morten,
<%
If Request.Form("Action") = "Opret" Then
'Loop throug the db to see if the name (navn) already exists
'
'db Connection
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Mode = 3
DNS = "DRIVER={Microsoft Access Driver (*.mdb)};"
DNS = DNS & "DBQ=" & Server.Mappath("login_2000.mdb")
'db Open
Conn.Open DNS
'db query
'the query returns the numbers of rows with the same name as the user has entered
strSQL = "SELECT Count(navn) AS Counter FROM personer WHERE navn='" & Request.Form("Navn") & "'"
'Creste object recordset
Set oRs = Conn.Execute(strSQL)
If oRs("Counter") = 0 Then
'Create user
'
'INSERT Query
strSQL = "INSERT INTO personer (navn, login, kodeord) VALUES ('" & Request.Form("navn") & "', '" & Request.Form("Login") & "', '" & Request.Form("Kodeord") & "')"
'Execute Query
oRs = Conn.Execute(strSQL)
Else
Response.Write("En bruger med det navn eksistere allerede.<br />Vær venlig at vælge et andet.")
End If
Conn.Close
End If
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/loose.dtd">
<head>
<title>Mit dokument</title>
</head>
<body>
<form method="POST" action="default.asp" style="margin: 0px;" id = "logon">
<input type="text" name="Navn" value = "Fornavn" size="10">
<input type="text" name="Login" value = "Login" size="10">
<input type="text" name="Password" value = "Password" size ="10">
<input type="submit" value="Opret" name="Action">
</form>
</body>
</html>
Jeg har lavet nogle småændringer for at give scriptet en bedre performance og for at gøre det lidt mere overskueligt.
Når du skal tjekke om en bruger med samme navn allerede eksistere, er det bedre at gøre det i SQL sætningen.
strSQL = "SELECT Count(navn) AS Counter FROM personer WHERE navn='" & Request.Form("Navn") & "'"
Det der sker er at SQL returnerer antallet af rækker hvor navnet er det samme som det brugeren har indtastet. Hvis tallet (Counter) er højere end 0 eksistere brugeren.
Hvis du får denne fejl: "Operation must use an updateable query", er det fordi webserveres bruger IUSR_XXX ikke har skrive adgang til filen. Se følgende link for at løse problemet
http://support.microsoft.com/kb/q175168/Du er meget velkommen til at skrive hvis du har nogen problemer.
Kenneth