SQL SERVER
  我在第一个表中已经找出了一个记录的位置.处理完后,又要去找第二个表中另一个记录的位置.处理完后.在返回来处理第一个表中刚才找到的哪个记录,但是记录位置已经不对了.现在就是如果不再重新查找的话,在处理第二个表之前怎样记录下第一个的位置呢?然后返回去还可以继续使用第一个表中的找到的记录.

解决方案 »

  1.   

    Book 属性      返回唯一标识 Recordset 对象中当前记录的书签,或者将 Recordset 对象的当前记录设置为由有效书签所标识的记录。设置和返回值设置或返回计算有效书签的变体型表达式。说明使用 Book 属性可保存当前记录的位置并随时返回到该记录。书签只能在支持书签功能的 Recordset 对象中使用。打开 Recordset 对象时,其每个记录都有唯一的书签。要保存当前记录的书签,请将 Book 属性的值赋给一个变量。移动到其他记录后要快速返回到该记录,请将该 Recordset 对象的 Book 属性设置为该变量的值。用户可能无法查看书签的值,也同样无法对书签直接进行比较(指向同一记录的两个书签的值可能不同)。示例:该范例使用 BOF 和 EOF 属性,在用户试图移过 Recordset 的第一个和最后一个记录时显示一条信息。它通过 Book 属性使用户对 Recordset 中的记录进行标记,稍后再返回给它。Public Sub BOFX()   Dim rstPublishers As ADODB.Recordset
       Dim strCnn As String
       Dim strMessage As String
       Dim intCommand As Integer
       Dim varBook As Variant   ' 使用来自出版商表的数据打开记录集。
       strCnn = "Provider=sqloledb;" & _
          "Data Source=srv;Initial Catalog=pubs;User Id=sa;Password=; "
       Set rstPublishers = New ADODB.Recordset
       rstPublishers.CursorType = adOpenStatic
       ' 使用客户端游标启用 AbsolutePosition 属性。
       rstPublishers.CursorLocation = adUseClient
       rstPublishers.Open "SELECT 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 book / 4 - go to book]"
          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
                varBook = rstPublishers.Book         ' 转到由存储的书签所指示的记录。
             Case 4
                If IsEmpty(varBook) Then
                   MsgBox "No Book set!"
                Else
                   rstPublishers.Book = varBook
                End If         Case Else
                Exit Do
          End Select   Loop   rstPublishers.CloseEnd Sub