在解决rs.absolutepage=-1
的问题时,可以尝试以下几种方法:
- 使用
rs.movefirst
将记录指针移动到结果集的第一条记录,然后再使用rs.movelast
将记录指针移动到结果集的最后一条记录。这样可以获取到结果集的总记录数,并计算出需要移动到倒数第一页时的absolutepage
值。
rs.movefirst rs.movelast totalRecords = rs.recordcount pageSize = 10 ' 每页显示的记录数 lastPage = Int(totalRecords / pageSize) + 1 ' 计算出总页数 rs.absolutepage = lastPage ' 移动到最后一页
- 使用
rs.move
方法将记录指针移动到指定位置。可以先获取到结果集的总记录数,并计算出需要移动到倒数第一页时的记录位置,然后再使用rs.move
将记录指针移动到该位置。
totalRecords = rs.recordcount pageSize = 10 ' 每页显示的记录数 lastPagePosition = totalRecords - ((lastPage - 1) * pageSize) + 1 ' 计算出倒数第一页的记录位置 rs.move lastPagePosition ' 移动到倒数第一页
- 在打开记录集时,使用
adOpenStatic
和adLockReadOnly
作为参数,这样可以将结果集的游标类型设置为静态,以便后续可以使用absolutepage
属性。
Set rs = New ADODB.Recordset rs.Open strSQL, conn, adOpenStatic, adLockReadOnly
- 在打开记录集时,使用
adCmdTableDirect
作为参数,这样可以避免使用absolutepage
属性,而是使用rs.move
方法来移动记录指针。
Set rs = New ADODB.Recordset rs.Open "SELECT * FROM YourTable", conn, adOpenStatic, adLockReadOnly, adCmdTableDirect
以上是一些常见的解决方法,根据具体的情况选择适合的方法来解决rs.absolutepage=-1
的问题。