---
title: "Select som känner av om post redan finns?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/6168-select-som-känner-av-om-post-redan-finns"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "brw"
published: "2000-07-20T12:25:00.000Z"
updated: "2000-08-02T08:09:00.000Z"
replies: 11
views: 328
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/6168-select-som-känner-av-om-post-redan-finns"
---

# Select som känner av om post redan finns?

## #1 — brw, 2000-07-20T12:25Z

Jag har gjort en liten kodsnutt som är som följer:

```
<%
reasoncode=Request.Form("reasoncode")

If len(trim(reasoncode))> 0 then
	reasoncode= "%" & reasoncode & "%"
End If

	Set Connect = Server.CreateObject("ADODB.Connection")
	Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\databaser\login.mdb" 

	Set RecSet = Server.CreateObject("ADODB.Recordset")

   SQLStmt = "SELECT * FROM reason WHERE reasoncode = reasoncode order by reasoncode"

	Set visa = Connect.Execute(SQLStmt)

 If EOF then

   Addera = "SELECT * FROM reason"

   RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic

	RecSet.AddNew

	RecSet("reasoncode") = Request.Form("reasoncode")	
	RecSet("reasone") = Request.Form("reasone")	
	RecSet("reasons") = Request.Form("reasons")	
	RecSet("datereg") = Request.Form("datereg")
	RecSet("regger") = Request.Form("regger")	
	

	RecSet.Update
	RecSet.Close
	Connect.Close 

else

Response.Write "Posten existerar redan"
end if
%>
```

Jag vill alltså att den ska kolla om reasoncode redan finns reggat.. om inte så ska den regga den nya posten.

Koden som jag har nu fungerar inte.

Kanske finns det något enklare sätt att lösa det? 

/brw

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

## #2 — emission, 2000-07-20T13:17Z

3 fel.

If len(trim(reasoncode))\> 0 then
reasoncode= "%" & reasoncode & "%"
End If

...men vad händer om reasoncode är tom?

SQLStmt = "SELECT \* FROM reason WHERE reasoncode = reasoncode order by reasoncode"

Du måste stoppa in variabeln reasoncode i SQL-satsen

if EOF

ska vara if visa.EOF

Dessutom är det mycket bättre att använda en INSERT-sats, i stället för AddNew.

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

## #3 — brw, 2000-07-20T13:23Z

Hur jag ska formulera det då? om fältet är tomt och om det redan finns...

Om det är tomt så ska den skriva ut tex.
Inget värde angavs eller något sånt och om det redan finns så skall den skriva att värdet är upptaget el. liknande.

Har du lust att hjälpa mig med koden? =)

/brw

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

## #4 — Johnsen, 2000-07-20T13:35Z

Skulle inte detta kunna gå?

```
<%
reasoncode=Request.Form("reasoncode")

Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\databaser\login.mdb" 

Set RecSet = Server.CreateObject("ADODB.Recordset")

SQLStmt = "SELECT * FROM reason WHERE reasoncode = reasoncode order by reasoncode"

RecSet.Open SQLStmt, Connect, adOpenStatic, adLockOptimistic

X =FALSE
Do Until X = TRUE OR RecSet.EOF 

If len(trim(RecSet("reasoncode"))) > 0 Then
X = TRUE
Exit Do
End If 

RecSet.MoveNext 

Loop 

If X = TRUE then

Response.Write "Posten existerar redan"

RecSet.Close
Connect.Close 

Else

RecSet.Close
Connect.Close 

Addera = "SELECT * FROM reason"

RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic

RecSet.AddNew

RecSet("reasoncode") = Request.Form("reasoncode") 
RecSet("reasone") = Request.Form("reasone") 
RecSet("reasons") = Request.Form("reasons") 
RecSet("datereg") = Request.Form("datereg")
RecSet("regger") = Request.Form("regger") 

RecSet.Update
RecSet.Close
Connect.Close 

end if
%>
```

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

## #5 — emission, 2000-07-20T14:05Z

Nej. Fel 1 och 2 kvarstår. Onödigt att loopa över RecSet.

```
<%
reasoncode=Request.Form("reasoncode")
If len(trim(reasoncode))> 0 then
reasoncode= "%" & reasoncode & "%"

Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\databaser\login.mdb" 

Set RecSet = Server.CreateObject("ADODB.Recordset")

SQLStmt = "SELECT * FROM reason WHERE reasoncode = " & reasoncode

Set visa = Connect.Execute(SQLStmt)

If visa.EOF then

SQLstmt="INSERT INTO reason (reasoncode,reasone,reasons,datereg,regger) VALUES ('" & reasoncode & "','" & Request.Form("reasone") & "','" & Request.Form("reasons") & "','" & Request.Form("datereg") & "','" & Request.Form("regger") & "'"

Connect.Execute(SQLstmt)
else
Response.Write "Posten existerar redan"
end if

Connect.Close 

else

Response.Write "Inget värde angavs"

End If

%>
```

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

## #6 — brw, 2000-07-20T14:37Z

hmmm fungerar inte..
den visar iaf. att inget värde angavs om jag inte gör det ... men anger jag ett värde som jag vet inte finns så skriver den iaf. ut att det redan existerar och addar det inte i databasen och om jag skriver ett som redan existerar blir det likadant?

/brw

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

## #7 — emission, 2000-07-20T15:45Z

Ta bort

If len(trim(reasoncode))\> 0 then
reasoncode= "%" & reasoncode & "%"

Det är ju inte en LIKE-sökning.

Vad är det för datatyper på fälten?

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

## #8 — brw, 2000-07-21T05:52Z

Hmm jag får det inte att funka... koden ser ut så här nu:

```
<%
reasoncode = Request.Form("reasoncode")

Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\databaser\login.mdb" 

Set RecSet = Server.CreateObject("ADODB.Recordset")

SQLStmt = "SELECT * FROM reason WHERE reasoncode = reasoncode"

Set visa = Connect.Execute(SQLStmt)

If visa.EOF then

SQLstmt="INSERT INTO reason (reasoncode,reasone,reasons,datereg,regger) VALUES ('" & reasoncode & "','" & Request.Form("reasone") & "','" & Request.Form("reasons") & "','" & Request.Form("datereg") & "','" & Request.Form("regger") & "'"

Connect.Execute(SQLstmt)
else
Response.Write "Posten existerar redan"
end if

Connect.Close 

else

Response.Write "Inget värde angavs"

End If

%>
```

Det är vanliga textfält i databasen. utom ID då förstås

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

## #9 — emission, 2000-07-21T12:00Z

Läs igenom mina inlägg! Du har fortfarande ingen variebel i select-satsen. :)

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

## #10 — brw, 2000-08-02T05:27Z

Jag får det inte att fungera... vad saknas? 

Det blir följande fel:

Syntaxfel 

addreasoninsert.asp, rad 27 

else
^

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

## #11 — emission, 2000-08-02T05:50Z

Hur ser koden ut nu?

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

## #12 — brw, 2000-08-02T08:09Z

Såhär ser den ut nu:

```

<%
reasoncode = Request.Form("reasoncode")
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\databaser\login.mdb" 

Set RecSet = Server.CreateObject("ADODB.Recordset")

SQLStmt = "SELECT * FROM reason WHERE reasoncode = reasoncode"

Set visa = Connect.Execute(SQLStmt)

If visa.EOF then

SQLstmt="INSERT INTO reason (reasoncode,reasone,reasons,datereg,regger) VALUES ('" & reasoncode & "','" & Request.Form("reasone") & "','" & Request.Form("reasons") & "','" & Request.Form("datereg") & "','" & Request.Form("regger") & "'"

Connect.Execute(SQLstmt)
else
Response.Write "Posten existerar redan"
end if

Connect.Close 

else

Response.Write "Inget värde angavs"

End If

%>
```

/brw

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/6168-select-som-känner-av-om-post-redan-finns
