在解決rs.absolutepage=-1
的問題時(shí),可以嘗試以下幾種方法:
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)到最后一頁
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ù)第一頁
adOpenStatic
和adLockReadOnly
作為參數(shù),這樣可以將結(jié)果集的游標(biāo)類型設(shè)置為靜態(tài),以便后續(xù)可以使用absolutepage
屬性。Set rs = New ADODB.Recordset
rs.Open strSQL, conn, adOpenStatic, adLockReadOnly
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
的問題。