解決rs.absolutepage=-1的問題

小云
105
2023-08-14 15:09:42
欄目: 編程語言

在解決rs.absolutepage=-1的問題時(shí),可以嘗試以下幾種方法:

  1. 使用rs.movefirst將記錄指針移動(dòng)到結(jié)果集的第一條記錄,然后再使用rs.movelast將記錄指針移動(dòng)到結(jié)果集的最后一條記錄。這樣可以獲取到結(jié)果集的總記錄數(shù),并計(jì)算出需要移動(dòng)到倒數(shù)第一頁時(shí)的absolutepage值。
rs.movefirst
rs.movelast
totalRecords = rs.recordcount
pageSize = 10 ' 每頁顯示的記錄數(shù)
lastPage = Int(totalRecords / pageSize) + 1 ' 計(jì)算出總頁數(shù)
rs.absolutepage = lastPage ' 移動(dòng)到最后一頁
  1. 使用rs.move方法將記錄指針移動(dòng)到指定位置??梢韵全@取到結(jié)果集的總記錄數(shù),并計(jì)算出需要移動(dòng)到倒數(shù)第一頁時(shí)的記錄位置,然后再使用rs.move將記錄指針移動(dòng)到該位置。
totalRecords = rs.recordcount
pageSize = 10 ' 每頁顯示的記錄數(shù)
lastPagePosition = totalRecords - ((lastPage - 1) * pageSize) + 1 ' 計(jì)算出倒數(shù)第一頁的記錄位置
rs.move lastPagePosition ' 移動(dòng)到倒數(shù)第一頁
  1. 在打開記錄集時(shí),使用adOpenStaticadLockReadOnly作為參數(shù),這樣可以將結(jié)果集的游標(biāo)類型設(shè)置為靜態(tài),以便后續(xù)可以使用absolutepage屬性。
Set rs = New ADODB.Recordset
rs.Open strSQL, conn, adOpenStatic, adLockReadOnly
  1. 在打開記錄集時(shí),使用adCmdTableDirect作為參數(shù),這樣可以避免使用absolutepage屬性,而是使用rs.move方法來移動(dòng)記錄指針。
Set rs = New ADODB.Recordset
rs.Open "SELECT * FROM YourTable", conn, adOpenStatic, adLockReadOnly, adCmdTableDirect

以上是一些常見的解決方法,根據(jù)具體的情況選擇適合的方法來解決rs.absolutepage=-1的問題。

0