使用 Bookmarks 和 SelBookmarks 跟踪记录

Bookmarks 和 SelBookmarks 提供了标记记录的一种手段。当编写应用程序中的特定功能(诸如允许最终用户手工地选择多个不相邻的记录,进行所选记录的大批更新)时,这就很有必要。在这些情形中,需要标记哪些记录已被选择,因此可以使用 SelBookmarks 集合及其属性。

有两个函数,分别是 CellText 和 CellValue 方法,需要标记才能正确执行。

标记用户的选择

SelBookmarks 集合包含所有选定的记录的书签。当最终用户手工选择记录时(即在单击时按住 CTRL 键),每一个选定的记录的书签都会加入到该集合。使用标准的循环,用户可以知道已经选定了什么,也可以保存书签(因为可能需要恢复某个值),以及执行操作:

Dim i as Integer ' 计数器
Dim intCount As Integer
intCount = DataGrid1.SelBookmarks.Count - 1
ReDim arrSelBK(intCount) ' 声明用于保存书签的数组。
For i = 0 To intCount
   ArrSelBK(i) = DataGrid1.SelBookmarks(i)
   ' 在此处执行操作。如果该操作必须被
   ' 取消,则退出该循环,然后使用该数 
   ' 组来取消这些更改。
Next i

通过在程序中添加到 SelBookmarks 集合来选择记录

通过将记录添加到这个集合,也可以在程序中选定记录。例如,可能有一个显示指定的客户所有订货的网格。如果要高亮显示该客户花费超过 $100 的所有记录,则对记录进行过滤,并将结果书签添加到 SelBookmarks 集合。

Dim rs As Recordset
Set rs = Adodc1.Recordset

While Not rs.EOF
   If rs!SupplierID = 12 Then
      DataGrid1.SelBookmarks.Add rs.Bookmark
   End If
   rs.MoveNext
Wend