ADO2.1中Bookmark 屬性 (轉)

worldblog發表於2007-12-09
ADO2.1中Bookmark 屬性 (轉)[@more@]

返回唯一標識 rec.htm">Recordset 中當前記錄的書籤,或者將 Recordset 物件的當前記錄設定為由有效書籤所標識的記錄。

設定和返回值

設定或返回計算有效書籤的變體型

說明

使用 Bookmark 屬性可儲存當前記錄的位置並隨時返回到該記錄。書籤只能在支援書籤功能的 Recordset 物件中使用。

開啟 Recordset 物件時,其每個記錄都有唯一的書籤。要儲存當前記錄的書籤,請將 Bookmark 屬性的值賦給一個變數。移動到其他記錄後要返回到該記錄,請將該 Recordset 物件的 Bookmark 屬性設定為該變數的值。

可能無法檢視書籤的值,也同樣無法對書籤直接進行比較(指向同一記錄的兩個書籤的值可能不同)。

如果使用 方法建立 Recordset 的一個副本,則原始的和複製的 Recordset 物件 Bookmark 屬性設定相同並可以替換使用。但是,無法替換使用不同 Recordset 物件的書籤,即使這些書籤是透過同一資料來源或命令建立的。

資料服務用法 在客戶端 (ADOR) Recordset 物件上使用時,Bookmark 屬性始終有效。

 

BOF、EOF 和 Bookmark 屬性範例

該範例使用 BOFEOF 屬性,在使用者試圖移過 Recordset 的第一個和最後一個記錄時顯示一條資訊。它透過 Bookmark 屬性使使用者對 Recordset 中的記錄進行標記,稍後再返回給它。

Public Sub BOFX() Dim rstPublishers As ADODB.Recordset Dim strCnn As String Dim strMessage As String Dim intCommand As Integer Dim varBookmark As Variant ' 使用來自出版商表的資料開啟記錄集。 strCnn = "Provr=oledb;" & _ "Data =srv;Initial Catalog=pubs;User Id=sa;Pass=; " Set rstPublishers = New ADODB.Recordset rstPublishers.CursorType = adOpenStatic ' 使用客戶端遊標啟用 AbsolutePosition 屬性。 rstPublishers.CursorLocation = adUseClient rstPublishers.Open " pub_id, pub_name FROM publishers " & _ "ORDER BY pub_name", strCnn, , , adCmdText rstPublishers.MoveFirst Do While True ' 顯示關於當前記錄的資訊並讓使用者輸入。 strMessage = "Publisher: " & rstPublishers!pub_name & _ vbCr & "(record " & rstPublishers.AbsolutePosition & _ " of " & rstPublishers.RecordCount & ")" & vbCr & vbCr & _ "Enter command:" & vbCr & _ "[1 - next / 2 - previous /" & vbCr & _ "3 - set bookmark / 4 - go to bookmark]" intCommand = Val(InputBox(strMessage)) Select Case intCommand ' 向前或向後移動,捕獲 BOF 或 EOF。 Case 1 rstPublishers.MoveNext If rstPublishers.EOF Then MsgBox "Moving past the last record." & _ vbCr & "Try again." rstPublishers.MoveLast End If Case 2 rstPublishers.MovePrevious If rstPublishers.BOF Then MsgBox "Moving past the first record." & _ vbCr & "Try again." rstPublishers.MoveFirst End If ' 儲存當前記錄的書籤。 Case 3 varBookmark = rstPublishers.Bookmark ' 轉到由的書籤所指示的記錄。 Case 4 If IsEmpty(varBookmark) Then MsgBox "No Bookmark set!" Else rstPublishers.Bookmark = varBookmark End If Case Else Exit Do End Select L rstPublishers.Close End Sub


該範例使用 Bookmark Filter 屬性建立記錄集的限定檢視,將只允許訪問書籤陣列所引用的記錄。

Public Sub BOFX2() Dim rs As New ADODB.Recordset Dim bmk(10) rs.CursorLocation = adUseClient rs.ActiveConnection = "Provider=sqloledb;" & _ "Data Source=srv;Initial Catalog=pubs;User Id=sa;Password=;" rs.Open "select * from authors", , adOpenStatic, adLockBatchOptimistic De.Print "Number of records before filtering: ", rs.RecordCount ii = 0 While rs.EOF <> True And ii < 11 bmk(ii) = rs.Bookmark ii = ii + 1 rs.Move 2 Wend rs.Filter = bmk Debug.Print "Number of records after filtering: ", rs.RecordCount rs.MoveFirst While rs.EOF <> True Debug.Print rs.AbsolutePosition, rs("au_lname") rs.MoveNext Wend End Sub


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-990095/,如需轉載,請註明出處,否則將追究法律責任。

相關文章