---
title: "email upptagen"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/40483-email-upptagen"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Gimbo"
published: "2002-03-28T15:58:20.000Z"
updated: "2002-03-30T16:36:22.000Z"
replies: 19
views: 363
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/40483-email-upptagen"
---

# email upptagen

## #1 — Gimbo, 2002-03-28T15:58Z

Hejsan hur gör man med denna kod för att se om email adressen i databasen finns redan, dvs så att man inte kan posta två inlägg med samma email??

```
<%
	Set Connect = Server.CreateObject("ADODB.Connection")
	Connect.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("databsen.mdb")
%>
<%

	Set RecSet = Server.CreateObject("ADODB.Recordset")
   	Addera = "SELECT * FROM bekrafta"

   	RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic
	RecSet.AddNew

	RecSet("eNamn") = Request.Form("enamn")
	RecSet("fNamn") = Request.Form("fnamn")
	RecSet("stad") = Request.Form("stad")
	RecSet("mail") = Request.Form("mail")	
	RecSet("info") = Replace(Server.HTMLEncode(Request.Form("info")), chr(13), 		"<BR>", 1)
	RecSet("datum") = Request.Form("datum")
	RecSet("ip") = Request.Form("ip")	

	RecSet.Update
	RecSet.Close
	Connect.Close
	Set Connect = Nothing

Response.Write "du är inlagd i databasen"

%>
```

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

## #2 — Lazerzubb, 2002-03-28T16:03Z

Du kan ju sätta "properties" i Access so att det blir "No duplicates" ligger under "indexed" i design läge.

Men det finns nog något bättre, kan inte asp.

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

## #3 — Lazerzubb, 2002-03-28T16:18Z

Kolla även dessa trådar.

<http://www.webforum.nu/showthread.php?s=&threadid=10579&highlight=duplicate>

<http://www.webforum.nu/showthread.php?s=&threadid=10215&highlight=duplicate>

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

## #4 — solbulle, 2002-03-28T16:33Z

Detta kanske kan fungera:

```
<%
	Set Connect = Server.CreateObject("ADODB.Connection")
	Connect.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("databsen.mdb")
	Set RecSet = Server.CreateObject("ADODB.Recordset")

   	Addera = "SELECT * FROM bekrafta where mail ='" & Request.Form("mail") & "'"

   	RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic

If RecSet.EOF then

	RecSet.AddNew
	RecSet("eNamn") = Request.Form("enamn")
	RecSet("fNamn") = Request.Form("fnamn")
	RecSet("stad") = Request.Form("stad")
	RecSet("mail") = Request.Form("mail")	
	RecSet("info") = Replace(Server.HTMLEncode(Request.Form("info")), chr(13), 		"<BR>", 1)
	RecSet("datum") = Request.Form("datum")
	RecSet("ip") = Request.Form("ip")	
	RecSet.Update

Response.Write "Du är inlagd i databasen"

Else

Response.Write "Du fanns redan i databasen"

End If

	RecSet.Close
	Connect.Close
	Set Connect = Nothing

%>
```

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

## #5 — Gimbo, 2002-03-28T20:07Z

Det fungerade den la till en ny post i databsen med samma email ändå, knepigt nu va??

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

## #6 — solbulle, 2002-03-28T20:51Z

Hm, testa flytta ut:

RecSet.Update

utanför If-satsen, eller kanske tom ta bort den.

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

## #7 — Gimbo, 2002-03-29T01:08Z

det fungerar inte att ta bort den eller flytta ut den, om jag tar bort den så får jag fel meddelandet:

```
ADODB.Recordset fel '800a0c93' 

Åtgärden som programmet begärt är inte tillåten i det här sammanhanget.
```

om jag flyttar ut den får jag felmeddelandet:

```
ADODB.Recordset fel '800a0bcd' 

Antingen är BOF eller EOF satt till True, eller så har aktuell post raderats; åtgärden som programmet begärt kräver en aktuell post.
```

SNälla ngn som kan hjälpa??!!

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

## #8 — SPiN, 2002-03-29T01:46Z

Jag skulle göra så här istället:

```
set objC = Server.CreateObject ( "ADODB.Connection" )
set objRS = objC.Execute ( "SELECT mail FROM bekrafta WHERE mail = '" & Request.Form ( "mail" ) & "'" )

If objRS.EOF Then
     objC.Execute ( "INSERT INTO bekrafta (eNamn, fNamn, stad, mail, info, datum, ip) VALUES('" & Request.Form ( "enamn" ) & "', '" & Request.Form ( "fnamn" ) & "', '" & Request.Form ( "stad" ) & "', '" & Request.Form ( "mail" ) & "', '" & Request.Form ( "info" ) & "', '" & Request.Form ( "datum" ) & "', '" & Request.Form ( "ip" ) & "'" )
     Response.Write "Du är tillagd"
Else
     Response.Write "Email upptagen"
End If

objRS.Close
set objRS = Nothing
objC.Close
set objC = Nothing
```

Mindre och snyggare kod, plus att det är ett snabbare alternativ. :)

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

## #9 — Gimbo, 2002-03-29T11:31Z

men går det inte att göra på något sätt så att jag lägger till posterna i databasen på det sättet jag gör, dvs med recset??

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

## #10 — solbulle, 2002-03-29T12:13Z

SPiNs variant är helt klart att föredra.

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

## #11 — Gimbo, 2002-03-29T16:03Z

det fungerar inte, så här ser min kod för att lägga in posten i databasen:

```
<%
	Set Connect = Server.CreateObject("ADODB.Connection")
	Connect.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("databasen.mdb")
%>
<%
set objC = Server.CreateObject ( "ADODB.Connection" )
set objRS = objC.Execute ( "SELECT mail FROM bekrafta WHERE mail = '" & Request.Form ( "mail" ) & "'" )

If objRS.EOF Then
     objC.Execute ( "INSERT INTO bekrafta (eNamn, fNamn, stad, mail, info, datum, ip) VALUES('" & Request.Form ( "enamn" ) & "', '" & Request.Form ( "fnamn" ) & "', '" & Request.Form ( "stad" ) & "', '" & Request.Form ( "mail" ) & "', '" & Request.Form ( "info" ) & "', '" & Request.Form ( "datum" ) & "', '" & Request.Form ( "ip" ) & "'" )
     Response.Write "Du är tillagd"
Else
     Response.Write "Email upptagen"
End If

objRS.Close
set objRS = Nothing
objC.Close
set objC = Nothing
%>
```

jag får felmeddelandet:

```
ADODB.Connection fel '800a0e78' 

Åtgärden som programmet begärt är inte tillåten om objektet är stängt.
```

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

## #12 — LarsG, 2002-03-29T16:30Z

```
<%
	Set Connect = Server.CreateObject("ADODB.Connection")
	Connect.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("databasen.mdb")
%>
<%
set objRS = connect.Execute ( "SELECT mail FROM bekrafta WHERE mail = '" & Request.Form ( "mail" ) & "'" )

If objRS.EOF Then
     objC.Execute ( "INSERT INTO bekrafta (eNamn, fNamn, stad, mail, info, datum, ip) VALUES('" & Request.Form ( "enamn" ) & "', '" & Request.Form ( "fnamn" ) & "', '" & Request.Form ( "stad" ) & "', '" & Request.Form ( "mail" ) & "', '" & Request.Form ( "info" ) & "', '" & Request.Form ( "datum" ) & "', '" & Request.Form ( "ip" ) & "'" )
     Response.Write "Du är tillagd"
Else
     Response.Write "Email upptagen"
End If

objRS.Close
set objRS = Nothing
connect.Close
set connect = Nothing
%>
```

Du har blandat ihop dina variabelnamn

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

## #13 — Gimbo, 2002-03-30T02:55Z

LarsG, det fungerar fortfarande inte, lr nu fungerar en del utav koden, dvs när jag knappar in samma mail så skriver den ut att email adressen är upptagen men när jag skriver in en email som inte finns i databasen så får jag detta felmeddelande:

```
Körningsfel i Microsoft VBScript fel '800a01a8' 

Objekt krävs.: 'objC'
```

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

## #14 — emission, 2002-03-30T04:36Z

En liten felskrivning bara...

Byt objC i koden mot connect, eller alla connect mot objC

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

## #15 — Gimbo, 2002-03-30T10:25Z

men det finns ju ingen objC i koden som larsG gav mig??

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

## #16 — @nders, 2002-03-30T11:26Z

Jo, det gör det.

Byt den mot Connect så ska det ordna sig.

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

## #17 — Gimbo, 2002-03-30T15:42Z

okej jag va blind som inte såg det där, måste fixa glasögon för mycket dator sittande verkar det som, men det fungerar fortfarande INTE, jag får följande felmeddelande nu:

```
Microsoft OLE DB Provider for ODBC Drivers fel '80040e14' 

[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel i INSERT INTO-uttryck.
```

tabellarna i databasen och allt stämmer överens med det som står i satsen, I dont get it??

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

## #18 — LarsG, 2002-03-30T16:01Z

```
connect.Execute "INSERT INTO bekrafta (eNamn, fNamn, stad, mail, info, [datum], ip) " & _
" VALUES('" & Request.Form ( "enamn" ) & "', '" & Request.Form ( "fnamn" ) & "', '" & _
Request.Form ( "stad" ) & "', '" & Request.Form ( "mail" ) & "', '" & Request.Form ( "info" ) & _
"', #" & Request.Form ( "datum" ) & "#, '" & Request.Form ( "ip" ) & "')"
```

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

## #19 — Gimbo, 2002-03-30T16:20Z

tack lars och alla andra det fungerade, men en fråga lars, vad var felet med insert grejen?? förrutom att ett datum skall innehålla detta tecken #??

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

## #20 — LarsG, 2002-03-30T16:36Z

Det räcker att # saknas ;)

Sen så var det en avslutande parentes som saknades. 

Ordet DATUM kan ställa till problem om man har en svensk access, har jag hört, och därför satte jag det inom \[\]

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/40483-email-upptagen
