---
title: "Registrerings koll !!!!!!"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/9280-registrerings-koll"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Tobbster"
published: "2001-05-04T10:55:00.000Z"
updated: "2001-05-04T16:25:00.000Z"
replies: 8
views: 799
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/9280-registrerings-koll"
---

# Registrerings koll !!!!!!

## #1 — Tobbster, 2001-05-04T10:55Z

Borde det inte gå att göra så här för att slippa felmeddelandet att primärnyckelposten redan finns i data basen (Användarnamn) När en ny medlem försöker registrera sig med redan bifintligt användar namn ?

\<%
    Set linCon=Server.CreateObject("ADODB.Connection")
        Set rs=Server.CreateObject("ADODB.Recordset")
        linCon.Open "driver={Microsoft Access Driver (\*.mdb)};dbq="& Server.MapPath("\\tomalu\\db\\tomalu.mdb")
        SQL="SELECT Anvandarnamn FROM medlem "
        rs.Open SQL,MinCon,1,2
        Do until rs.EOF
        if rs("Anvandarnamn")=Request.Form("anvnamn")
        Then response.redirect"fel.asp"
        Else
        Loop

        Set MinCon=Server.CreateObject("ADODB.Connection")
        Set rs=Server.CreateObject("ADODB.Recordset")
        MinCon.Open "driver={Microsoft Access Driver (\*.mdb)};dbq="& Server.MapPath("\\tomalu\\db\\tomalu.mdb")
        SQL="SELECT \* FROM medlem WHERE 1=2"
        rs.Open SQL,MinCon,1,2
        rs.AddNew
        rs("Anvandarnamn")=Request.Form("anvnamn")
        rs("Fnamn")=Request.Form("fnamn")
        rs("Enamn")=Request.Form("enamn")
        rs("Email")=Request.Form("email")
        rs("Persnr")=Request.Form("persnr")
        rs("Startsida")=Request.Form("Startsida")
        rs.Update
        rs.close
%\>
\<%MinCon.close%\>

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

## #2 — Tobbster, 2001-05-04T12:06Z

Jag har ändrat koden lite och tycker det borde funka så här men inte ....Vad är det för fel på mig

\<%
    Set linCon=Server.CreateObject("ADODB.Connection")
        Set rs=Server.CreateObject("ADODB.Recordset")
        linCon.Open "driver={Microsoft Access Driver (\*.mdb)};dbq="& Server.MapPath("\\tomalu\\db\\tomalu.mdb")
        SQL="SELECT Anvandarnamn FROM medlem "
        rs.Open SQL,MinCon,1,2
        Do While Not rs.EOF
        if rs("Anvandarnamn")=Request.Form("anvnamn") Then
        response.redirect"fel.asp"
        Else
        rs.MoveNext
        Loop
         %\>
        \<%
        Set MinCon=Server.CreateObject("ADODB.Connection")
        Set rs=Server.CreateObject("ADODB.Recordset")
        MinCon.Open "driver={Microsoft Access Driver (\*.mdb)};dbq="& Server.MapPath("\\tomalu\\db\\tomalu.mdb")
        SQL="SELECT \* FROM medlem WHERE 1=2"
        rs.Open SQL,MinCon,1,2
        rs.AddNew
        rs("Anvandarnamn")=Request.Form("anvnamn")
        rs("Fnamn")=Request.Form("fnamn")
        rs("Enamn")=Request.Form("enamn")
        rs("Email")=Request.Form("email")
        rs("Persnr")=Request.Form("persnr")
        rs("Startsida")=Request.Form("Startsida")
        rs.Update
        rs.close
%\>
\<%MinCon.close%\>

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

## #3 — Toonster, 2001-05-04T14:04Z

Du behöver inte loopa igenom för att kolla.
Sen behöver du inte använda recordset heller.
gör något liknande detta:

SQL="SELECT Anvandarnamn FROM medlem WHERE Anvandarnamn="&Request.Form("anvnamn") 

Set MinCon=Server.CreateObject("ADODB.Connection")
sqlstring= "driver={Microsoft Access Driver (\*.mdb)};dbq="& Server.MapPath("\\tomalu\\db\\tomalu.mdb")
MinCon.Open sqlstring
SET RS = MinCon.Execute(sqlstring)
if rs.EOF then
'fanns inte
else
'fanns
end if
RS.Close
MinCon.Close

/T

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

## #4 — Tobbster, 2001-05-04T14:40Z

Nu har jag ändrat och gjort så här men det funkar INTE ändå......

\<%
Set linCon=Server.CreateObject("ADODB.Connection")
sqlstring= "driver={Microsoft Access Driver (\*.mdb)};dbq="& Server.MapPath("\\tomalu\\db\\tomalu.mdb")
linCon.Open sqlstring
SET RS = linCon.Execute(sqlstring)
if rs.EOF then
        Set MinCon=Server.CreateObject("ADODB.Connection")
        Set rs=Server.CreateObject("ADODB.Recordset")
        MinCon.Open "driver={Microsoft Access Driver (\*.mdb)};dbq="& Server.MapPath("\\tomalu\\db\\tomalu.mdb")
        SQL="SELECT \* FROM medlem WHERE 1=2"
        rs.Open SQL,MinCon,1,2
        rs.AddNew
        rs("Anvandarnamn")=Request.Form("anvnamn")
        rs("Fnamn")=Request.Form("fnamn")
        rs("Enamn")=Request.Form("enamn")
        rs("Email")=Request.Form("email")
        rs("Persnr")=Request.Form("persnr")
        rs("Startsida")=Request.Form("Startsida")
        rs.Update
        rs.close
        MinCon.close
else
        response.redirect"main.asp"
end if
RS.Close
linCon.Close
%\>

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

## #5 — Tobbster, 2001-05-04T14:43Z

Jag får det här felmeddelandet..

Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
\[Microsoft\]\[Drivrutin för ODBC Microsoft Access\] Ogiltigt SQL-uttryck. 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT' eller 'UPDATE' förväntades.
/tomalu/reg.asp, line 12

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

## #6 — LarsG, 2001-05-04T15:30Z

Det blev visst lite sammanblandning mellan sqlsatser och connectionsträngen i förra exemplet.

```
<%
Set linCon=Server.CreateObject("ADODB.Connection")
connstring= "driver={Microsoft Access Driver (*.mdb)};dbq="& Server.MapPath("\tomalu\db\tomalu.mdb")
linCon.Open connstring

sql = "select 1 from medlem " & _
" WHERE Anvandarnamn = '" &_
Request.Form("anvnamn") & "'"

set rs = linCon.Execute(sql)
if rs.EOF then
found = true
sql = "insert into medlem(anvnamn, " &_ 
"fnamn,enamn,email,persnr," &_
"startsida) " &_
" values ('" & _
Request.Form("anvnamn") & "','" & _
Request.Form("fnamn")   & "','" & _
Request.Form("enamn")   & "','" & _
Request.Form("email")   & "','" & _
Request.Form("persnr")  & "','" & _
Request.Form("Startsida") & "')"
lincon.execute sql,,128
else
   found = true
end if
RS.Close
set rs = nothing
linCon.Close
set lincon = nothing
if  found then
    response.redirect "main.asp"
end if
%>
```

Nu förutsätter jag att alla kolumner i tabellen medlem är av typen char/varchar.

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

## #7 — Tobbster, 2001-05-04T15:54Z

Nu får jag istället det här feltyps meddelandet !

Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
\[Microsoft\]\[Drivrutin för ODBC Microsoft Access\] För få parametrar angavs. 1 förväntades.
/tomalu/reg.asp, line 11

Jag använder koden jag fick av  LarsG(Tack föresten) men ändrade Sqlfrågan till : SQL="SELECT \* FROM medlem WHERE Anvandarnamn="&Request.Form("anvnamn")

Annars är koden exakt ....Snälla hjäl 
Börjar tröttna på det här problemet snart  :OO

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

## #8 — LarsG, 2001-05-04T16:25Z

Vilken sqlsats är det som utförs på rad 11. Du kan ju lägga ut en testutskrift av strängen innan du gör execute för att se om det är ok.

Varför ändrade du i select-satsen? Om inte anvandarnamn är numeriskt så behövs apostroferna. Det fel som du får är något man ofta får om man man inte har med apostrofer eller om Request.Form("anvnamn") är tomt.

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

## #9 — Tobbster, 2001-05-04T16:25Z

Det har ordnat sig...bara jag låter bli att ändra kod som personer som kan det här har skrivit...Tack för allt.......

Frågan är vad vi amatörer skulle göra utan er ?

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/9280-registrerings-koll
