---
title: "Kolla dubbletter...lägga till i databas?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/51207-kolla-dubbletter-lägga-till-i-databas"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "henrik2001"
published: "2002-08-25T00:05:08.000Z"
updated: "2002-08-25T00:14:32.000Z"
replies: 3
views: 246
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/51207-kolla-dubbletter-lägga-till-i-databas"
---

# Kolla dubbletter...lägga till i databas?

## #1 — henrik2001, 2002-08-25T00:05Z

Hej!
Jag får följande felmeddelande när jag försöker lägga till i databasen:

```
Microsoft OLE DB Provider for ODBC Drivers fel '80040e14' 
[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel (operator saknas) i frågeuttrycket ''It's Over!')'. 
/add.asp, rad 41
```

(texten som jag skrev in var "It's Over!", utan citationstecken alltså...)

Här är koden (som ser till att man inte ska kunna lägga till dubbletter..):

```
strNAMN = Request.Form("input_NAMN")
strNAMN2 = Request.Form("input_NAMN2")
strNAMN3 = Request.Form("textarea_NAMN3")
strNAMN3 = Replace(strNAMN3,vbcrlf,"<br>")

Set Conn = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
MdbFilePath = Server.MapPath("databas.mdb")
Conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & MdbFilePath & ";"

' Kolla om det finns en dubblett.
SQL1 = "Select * From Texter Where NAMN='" & strNAMN & "' AND NAMN2 ='" & strNAMN2 & "'"

rs.Open SQL1, Conn, 1, 2

If rs.EOF Then
' Ingen dubblett hittad...lägg till i databasen.

SQL2 = "Insert Into Texter(NAMN, NAMN2, NAMN3) Values('" & strNAMN & "','" & strNAMN2 & "','" & strNAMN3 & "')"

' Rad 41 nedan
Conn.Execute SQL2,,128

' Posten inlagd!
Response.ReDirect "ny.asp"

' ######### Posten finns redan i databasen! #########
Else
%>

<center>
<br><br>
<%= strNAMN %> <%= strNAMN2 %>finns redan i databasen.<br>

<a href="javascript:history.back(-1)">Tillbaka till lägg till-sidan</a>
</center>

<%
End If 
rs.close
%>
```

Vad är fel??

/Henrik

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

## #2 — Pace, 2002-08-25T00:09Z

Du får med dig dubbla fnuttar (') när du gör SELECT:en.
Använd följande funktion på variablerna strNAMN1 och strNAMN2:

```
Function SqlString(ByVal sText)
	If isNull(sText) OR isEmpty(sText) OR sText = "" Then Exit Function
	sText = Replace(sText, "'", "''")
	SqlString = Trim(sText)
End Function
```

Och sedan:

```
 Kolla om det finns en dubblett.
SQL1 = "Select * From Texter Where NAMN='" & SqlString(strNAMN) & "' AND NAMN2 ='" & SqlString(strNAMN2) & "'"
...
SQL2 = "Insert Into Texter(NAMN, NAMN2, NAMN3) Values('" & SqlString(strNAMN) & "','" & SqlString(strNAMN2) & "','" & SqlString(strNAMN3) & "')"
```

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

## #3 — Jörgen HP, 2002-08-25T00:11Z

Du måsta escapa bort enkla citattecken ( ' ) på dina variabler som ska in i en databas på följande sätt:

```
strNAMN = replace(Request.Form("input_NAMN"),"'","''")
```

Eller bygg en funktion av det istället.

mvh Jörgen HP

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

## #4 — henrik2001, 2002-08-25T00:14Z

Tack för hjälpen...klockan två på natten dessutom!
wF: 24/7!
\=)

/Henrik

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/51207-kolla-dubbletter-lägga-till-i-databas
