---
title: "Upptagen användarnamn"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/10938-upptagen-användarnamn"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "jboy_87"
published: "2001-08-05T23:08:00.000Z"
updated: "2001-08-06T09:48:00.000Z"
replies: 19
views: 315
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/10938-upptagen-användarnamn"
---

# Upptagen användarnamn

## #1 — jboy_87, 2001-08-05T23:08Z

Så här ser min kod ut:
hur gör jag så att man inte kan registrera medlemmar med samma användarnamn???

\<%

IF Request.Form("losen") = Request.Form("losen2") THEN

Set connection = server.createObject("adodb.connection")
connection.open "driver={Microsoft Access Driver (\*.mdb)};dbq=" & Server.MapPath("db.mdb") & ";"
SQL = "INSERT INTO anvandare (Namn, Losen) VALUES ('" & Request.Form("ID") &"','" & Request.Form("losen") &"')"
set RS = Connection.Execute(SQL)
Response.Redirect("loggain.asp")

ELSE
session("galet") = "Du måste skriva lika lösen i båda fälten!"
Response.Redirect("blimedlem.asp")
END IF
%\>

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

## #2 — Pace, 2001-08-05T23:12Z

**Välkommen till webForum!**

Det fixar du enklast genom att sätta fältet "Namn" i databasen till indexerat, och att inga dubletter får förekomma.

När du sedan kollar

```
On Error Resume Next
SQL = "INSERT INTO anvandare (Namn, Losen) VALUES ('" & Request.Form("ID") &"','" & Request.Form("losen") &"')"

Connection.Execute(SQL)
If Err.Number Then
   Response.Write "Ojsan, det finns redan en sådan användare!"
Else
   Response.Redirect("loggain.asp")
End If
```

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

## #3 — jboy_87, 2001-08-05T23:22Z

asså ska koden se ut så här:
men den funkar inte :-(

\<%
IF Request.Form("losen") = Request.Form("losen2") THEN

Set connection = server.createObject("adodb.connection")
connection.open "driver={Microsoft Access Driver (\*.mdb)};dbq=" & Server.MapPath("db.mdb") & ";"
SQL = "INSERT INTO anvandare (Namn, Losen) VALUES ('" & Request.Form("ID") &"','" & Request.Form("losen") &"')"
Connection.Execute(SQL)
If Err.Number Then
Response.Write "Ojsan, det finns redan en sådan användare!"
Else
Response.Redirect("loggain.asp")
End If
ELSE
session("galet") = "Du måste skriva lika lösen i båda fälten!"
Response.Redirect("blimedlem.asp")
END IF
%\>

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

## #4 — Pace, 2001-08-05T23:25Z

Har du ställt in databasen till indexerad, lagt till "On Error Resume Next"? I så fall, visa felmeddelandet du fick... eller vad som händer.

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

## #5 — jboy_87, 2001-08-05T23:31Z

det händer inget den registrer medlemem men går och registrera samma användarnamn ähh kolla in sidan: [www.websamba.com/suryoyofun/blimedlem.asp](http://www.websamba.com/suryoyofun/blimedlem.asp)

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

## #6 — jboy_87, 2001-08-05T23:37Z

vad betyder indexerat???
hehe jag e nybörjare på asp

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

## #7 — Pace, 2001-08-05T23:40Z

Ställ in fältet "Namn" på följande vis:
Indexed: Yes (no duplicates) i designläget i Access.

**Red:** Indexerat innebär att man förhindrar att ett värde förekommer mer än en gång. Dvs man kan inte registrera samma användare flera gånger.

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

## #8 — jboy_87, 2001-08-05T23:48Z

nu blev det fel i scriptet:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14' 

\[Microsoft\]\[ODBC Microsoft Access Driver\] The changes you requested to the table were not successful because they would create duplicate values in the index, primary key, or relationship. Change the data in the field or fields that contain duplicate data, remove the index, or redefine the index to permit duplicate entries and try again. 

/suryoyofun/regga.asp, line 9

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

## #9 — Pace, 2001-08-05T23:51Z

Lugn! Så *ska* funktionen yttra sig när man gör på detta viset.

Lägg nu till följande:

```
[b]On Error Resume Next[/b]
SQL = "INSERT INTO anvandare (Namn, Losen) VALUES ('" & Request.Form("ID") &"','" & Request.Form("losen") &"')"
Connection.Execute(SQL)

[b]If Err.Number Then

Connection.Close
Set Connection = nothing
Response.Write "Ojsan, det finns redan en sådan användare!"
response.end

Else

Connection.Close
Set Connection = nothing
Response.Redirect("loggain.asp")

End If[/b]
```

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

## #10 — Pace, 2001-08-05T23:53Z

Vad som händer är att "On Error Resume Next" bara fortsätter med nästa rad om ett fel uppstår.

Och när vi kommer till "If Err.Numb..." kollar vi om det har uppstått något fel (dvs användaren har försökt registrera ett användarnamn som redan finns).

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

## #11 — jboy_87, 2001-08-05T23:56Z

fan asså nu är det problem med mess hehe
användaren som registrera sig syns inte..

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

## #12 — Pace, 2001-08-06T00:02Z

Hur menar du?

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

## #13 — jboy_87, 2001-08-06T00:04Z

har du msn messenger:
mitt e jboy_87@hotmail.com
så kan vi prata

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

## #14 — jboy_87, 2001-08-06T00:05Z

asså när man loggar in och ska välja användare från listan som man ska messa då finns syns inte användaren där??

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

## #15 — Pace, 2001-08-06T00:16Z

Du får visa lite kod annars är det omöjligt att veta vad som är fel.

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

## #16 — cyprys, 2001-08-06T08:11Z

Jag tycker personligen inte att du ska använda det indexerade sättet då det är en del krångligare.
JAg skulle gjort så här i stället.

```
<%
namn = Request.Form("ID")
SET koll = connection.execute("SELECT namn FROM anvandare WHERE namn = '"&namn&"' ")
if check.eof
' Här kör du Registreringen av den nya användaren
else
' Det användarnamnet finns redan
end if
%>
```

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

## #17 — Pace, 2001-08-06T09:14Z

Ska det vara "koll" eller "check" cyprys? :e 

Att använda indexering är ju snabbare och förhindrar fel. Sedan kan man ju kontrollera via den metod du visar också om man vill det.

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

## #18 — cyprys, 2001-08-06T09:30Z

Ska man koda på svenska eller engelska ??  Den eviga frågan
Vi kör nått mitt emellan. :r
\[r\] Vi låter förra inlägget stå kvar som avskräckande exempel :) \[/r\]

Men är det så mycket snabbare?
Jag försöker alltid att förutspå alla fel i koden i den utsträckning att man slipper använda error.number eller likn.

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

## #19 — Pace, 2001-08-06T09:38Z

Ska man koda på svenska eller engelska ?? Den eviga frågan
Vi kör nått mitt emellan.

Låter bra det! ;)

Men är det så mycket snabbare?
Jag försöker alltid att förutspå alla fel i koden i den utsträckning att man slipper använda error.number eller likn.

Det är ju snabbare på så vis att det snabbar upp åtkomsttiden (när man väl hittat användarnamnent "Pace" avslutas hämtningen)

Och man är ju inte tvungen att använda "Err" - det går ju lika bra att använda den metoden som du visar!

Men om du använder "Err" så kan det vara bra att stänga av den igen med "On Error Goto 0"... så det så! :e ;)

\------------------

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

## #20 — Tobbster, 2001-08-06T09:48Z

\*Och vad tycker vi om Goto sattser.....\*
Illa hur illa jätte illa usch usch usch...  :e

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/10938-upptagen-användarnamn
