---
title: "ADO recordset.PageCount returnerar -1"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/109644-ado-recordset-pagecount-returnerar-1"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "mattiasnordin"
published: "2004-08-20T08:54:02.000Z"
updated: "2004-08-20T13:35:03.000Z"
replies: 14
views: 583
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/109644-ado-recordset-pagecount-returnerar-1"
---

# ADO recordset.PageCount returnerar -1

## #1 — mattiasnordin, 2004-08-20T08:54Z

Hej.... 

Försöker labba lite med ADO recordset.PageCount.
Får det inte att fungera...

```
response.write rs.PageCount &"<hr>"
```

 

> returnerar -1.
> 
> ADODB.Recordset error '800a0bb9' 
> 
> Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another. 
> 
> /\_mattias övrigt/temp/gb.asp, line 118

> If the provider does not recognize this property, a value of -1 will be returned.

Använder följande. 

```
Set Connect = Server.CreateObject( "Adodb.Connection" )
Connect.Provider = "Microsoft.Jet.OLEDB.4.0"
MdbFilePath = Server.MapPath( "gb_2002.mdb" )
Connect.ConnectionString = "Data Source='" & MdbFilePath & "'"
Connect.open
```

Hur får jag det att fungera? Jag har sett ett annat skript som använde funktionen och jag försöker göra något liknande :)

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

## #2 — @nders, 2004-08-20T10:43Z

Då har du öppnat recordsetet på fel sätt.

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

## #3 — mattiasnordin, 2004-08-20T11:43Z

Hej igen @nders.

```
StrSql = "SELECT * FROM gbook"
set rs = connect.execute(StrSql)

while not rs.eof 
response.write rs("Name") &"<br>"
rs.movenext
wend

if rs.EOF and rs.BOF then '  Nothing Found %>
	<P><font face="Verdana, Arial, Helvetica" size=2>No One has signed the book</p></font>
<% exit Sub
End If 

' Something found
TotalRows = rs.RecordCount 

rs.PageSize = NumPages
TotalPages = rs.PageCount            '(DETTA ÄR LINE 125)

response.write TotalRows &"<hr>"
response.write rs.PageCount &"<hr>"
```

Returnerar:

> mattias ndfs
> jkjkl
> jjk
> \-1
> \--------------------------------------------------------------------------------
> \-1
> \--------------------------------------------------------------------------------
>  
> ADODB.Recordset error '800a0bb9' 
> 
> Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another. 
> 
> /\_mattias övrigt/temp/gb.asp, line 125

När jag loopar mitt recordset och printar ut så fungerar det. Men page funktionen fungerar inte. Säger det er något?

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

## #4 — @nders, 2004-08-20T11:49Z

Ja, det säger oss att du öppnat ditt recordset på fel sätt. :)
Du måste ange låstyp och cursortyp när du öppnar ditt recordset för att kunna använda recordcount och pagecount. 

Söken sie, bitte. :)

mvh

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

## #5 — mattiasnordin, 2004-08-20T12:59Z

Hittar en massa information... men fattar inte riktigt. 

```
Set Connect = Server.CreateObject( "Adodb.Connection" )
Connect.Provider = "Microsoft.Jet.OLEDB.4.0"
MdbFilePath = Server.MapPath( "gb_2002.mdb" )
Connect.ConnectionString = "Data Source='" & MdbFilePath & "'"
Connect.open
	StrSql = "SELECT * FROM gbook"
	Set rs = Server.CreateObject("ADODB.RecordSet")
	RecSet.Open StrSql, Conn, 1, 2
```

????

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

## #6 — @nders, 2004-08-20T13:01Z

Läs [här](http://www.devguru.com/technologies/ado/quickref/recordset_open.html) om låstyper och cursortyper, så kan du säkert få ihop det.

mvh

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

## #7 — mattiasnordin, 2004-08-20T13:05Z

```
Set Connect = Server.CreateObject( "Adodb.Connection" )
Connect.Provider = "Microsoft.Jet.OLEDB.4.0"
MdbFilePath = Server.MapPath( "gb_2002.mdb" )
Connect.ConnectionString = "Data Source='" & MdbFilePath & "'"
Connect.open
	StrSql = "SELECT * FROM gbook"
	Set rs = Server.CreateObject("ADODB.RecordSet")
	RecSet.Open StrSql, Connect, 2, 1
```

Returnerar:

> Microsoft VBScript runtime error '800a01a8' 
> 
> Object required: '' 
> 
> /\_mattias övrigt/temp/gb.asp, line 90

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

## #8 — @nders, 2004-08-20T13:08Z

RecSet är ju inte samma som rs, ju. :)

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

## #9 — mattiasnordin, 2004-08-20T13:10Z

Bra att du inte ger upp @nders ;)

```
Set Connect = Server.CreateObject( "Adodb.Connection" )
Connect.Provider = "Microsoft.Jet.OLEDB.4.0"
MdbFilePath = Server.MapPath( "gb_2002.mdb" )
Connect.ConnectionString = "Data Source='" & MdbFilePath & "'"
Connect.open
	StrSql = "SELECT * FROM gbook"
	Set rs = Server.CreateObject("ADODB.RecordSet")
	rs.Open StrSql, Connect, 2, 1 	'2=adOpenDynamic, 1=adLockReadOnly
```

Ger nu (igen):

> mattias ndfs
> jkjkl
> jjk
> \-1
> \--------------------------------------------------------------------------------
> \-1
> \--------------------------------------------------------------------------------
>  
> ADODB.Recordset error '800a0bb9' 
> 
> Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another. 
> 
> /\_mattias övrigt/temp/gb.asp, line 126

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

## #10 — @nders, 2004-08-20T13:12Z

Provat med 3:an (adOpenStatic)?

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

## #11 — mattiasnordin, 2004-08-20T13:14Z

B I N G O...

```
Set Connect = Server.CreateObject( "Adodb.Connection" )
Connect.Provider = "Microsoft.Jet.OLEDB.4.0"
MdbFilePath = Server.MapPath( "gb_2002.mdb" )
Connect.ConnectionString = "Data Source='" & MdbFilePath & "'"
Connect.open
	StrSql = "SELECT * FROM gbook"
	Set rs = Server.CreateObject("ADODB.RecordSet")
	rs.Open StrSql, Connect, 3, 1 	'3=adOpenStatic, 1=adLockReadOnly
```

Kunde inte fått detta att fungera utan hjälp. Nu sak jag försöka lära mig hur resten av ADO fungerar... återkommer väl antar jag  :r

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

## #12 — mattiasnordin, 2004-08-20T13:19Z

Men...

```
set rs = rs.NextRecordset
```

Ger...

> ADODB.Recordset error '800a0cb3' 
> 
> Current provider does not support returning multiple recordsets from a single execution. 
> 
> /\_mattias övrigt/temp/gb.asp, line 140

Jag är inte 100% med i matchen ännu... Vet inte riktigt vad det är för sport vi spelar om jag ska vara helt ärlig :)

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

## #13 — toha, 2004-08-20T13:27Z

Kommer inte ihåg hur det där fungerar exakt. Jag brukar köa med mina gamla funktioner. Kanske kan testa med dom? :o

```
	Function ExecSql(ByVal sSql, ByVal sCS)
		'response.write sSql & "<br>" & vbCrLf:response.flush
		Dim oConn, oRec

		Set oRec = Server.CreateObject("ADODB.Recordset")
		oRec.CursorLocation = 3				' adUseClient
		oRec.Open sSql, sCS
		Set oRec.ActiveConnection = Nothing
		Set ExecSql = oRec
		Set oRec = Nothing

	End Function

	Function ExecSqlConnected(ByVal sSql, ByVal sCS)
		'response.write sSql : response.flush
		Dim oRec
		
		Set oRec = Server.CreateObject("ADODB.Recordset")
		oRec.CursorLocation =	2	' adUseServer
		oRec.CursorType =		1	' adOpenDynamic
		oRec.LockType =			3	' adLockOptimistic
		oRec.Open sSql, sCS
		Set ExecSqlConnected = oRec
		Set oRec = Nothing

	End Function
```

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

## #14 — toha, 2004-08-20T13:27Z

Oj, jag var för sent ute. :)

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

## #15 — mattiasnordin, 2004-08-20T13:35Z

Böt ut "set rs = rs.NextRecordset" mot "rs.movenext" och det fungerar. Duger tillsvidare. För trött för att tänka nu :(

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/109644-ado-recordset-pagecount-returnerar-1
