---
title: "Hantera fler än 1 post"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/174961-hantera-fler-än-1-post"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "devotion"
published: "2008-10-26T06:18:19.000Z"
updated: "2008-10-26T09:09:10.000Z"
replies: 7
views: 470
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/dotnet/174961-hantera-fler-än-1-post"
---

# Hantera fler än 1 post

## #1 — devotion, 2008-10-26T06:18Z

Hej! :)  

Jag har följande funktion:

```
Function GetVismaOrderNo(sTaskNr, lOwnerId)

	dim sSQL, Conn, Rs
	
	GetVismaOrderNo = False
	
	'Öppna databasen
	Set Conn=CreateObject("ADODB.Connection")
	Conn.Open Application.sDbConnectionString
	Set Rs=CreateObject("ADODB.Recordset")
	
	sSQL = "SELECT [OrdNo] FROM [F0001].dbo.[Ord] WHERE [WebPg] = '" & sTaskNr & "'"
	Rs.Open sSQL, Conn
	
	If not Rs.EOF then GetVismaOrderNo = Application.SetFieldValue(10040, lOwnerId, Rs("OrdNo")) 

	Rs.Close
	Set Rs=Nothing
	Set Conn=Nothing
		
End function
```

Hur gör jag smartast för att kontrollera om det finns fler än 1 post i recordsetet?

Dvs är det bara 1 post då ska det göras saker. Är det fler än 1 post, så ska det göras andra saker..

Mvh
Henrik

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

## #2 — Compusa, 2008-10-26T06:39Z

Du borde kunna göra något i stil med:

```
If Rs.RecordCount > 0 Then
    ...
End If
```

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

## #3 — devotion, 2008-10-26T06:42Z

> **Compusa skrev:**
>
> Du borde kunna göra något i stil med:
> 
>
>
> ```
> If Rs.RecordCount > 0 Then
>     ...
> End If
> ```

Kan man alltid lita på recordcount?

Jag har hört att det inte alltid är tillförlitligt... :)

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

## #4 — @nders, 2008-10-26T06:53Z

Om du öppnar recordsetet på rätt så är det klart att du kan lita på recordcount. Om recordcount är -1 har du inte öppnat recordsetet med rätt parametrar.

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

## #5 — Compusa, 2008-10-26T07:10Z

En alternativ lösning är att ställa en SQL-fråga och kontrollera att värdet på 'Count' är större än 0:

```
Select @@ROWCOUNT as 'count', * from TABELL
```

Men får du det att fungera med RecordCount så tycker jag att du ska använda den.

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

## #6 — devotion, 2008-10-26T07:45Z

> **@nders skrev:**
>
> Om du öppnar recordsetet på rätt så är det klart att du kan lita på recordcount. Om recordcount är -1 har du inte öppnat recordsetet med rätt parametrar.

Här fanns lite info om det:
<http://sql-server-performance.com/Community/forums/p/18295/105819.aspx#105819>

Så, då borde man ju använda: adOpenStatic

  :)

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

## #7 — devotion, 2008-10-26T08:49Z

Så här nånting, kanske?

```
Function GetVismaOrderNo(sTaskNr, lOwnerId)

	dim sSQL, Conn, Rs
	
	GetVismaOrderNo = False
	
	'Öppna databasen
	Set Conn=CreateObject("ADODB.Connection")
	Conn.Open Application.sDbConnectionString
	Set Rs=CreateObject("ADODB.Recordset")
	Rs.CursorType=adOpenStatic
	
	sSQL = "SELECT [OrdNo] FROM [F0001].dbo.[Ord] WHERE [WebPg] = '" & sTaskNr & "'"
	Rs.Open sSQL, Conn
	
	If not Rs.EOF then
		If Rs.RecordCount>1 then
			'Det finns fler än en order med aktuellt uppdragsnummer
			'Skriv till systemloggen
			'Skicka larmsignal
			'Märk uppdraget
		Else
			GetVismaOrderNo = Application.SetFieldValue(10040, lOwnerId, Rs("OrdNo"))
		End If
	End if

	Rs.Close
	Set Rs=Nothing
	Set Conn=Nothing
		
End function
```

  :)

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

## #8 — @nders, 2008-10-26T09:09Z

Alltså: ja, någonting sånt kan absolut fjungera. :)

edit: never mind - läste fel :)

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

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/174961-hantera-fler-än-1-post
