MoveFirst、MoveLast、MoveNext 和 MovePrevious 方法范例
- 格式:doc
- 大小:32.00 KB
- 文档页数:2
MoveFirst、MoveLast、MoveNext 和 MovePrevious 方法范例
该范例使用 MoveFirst、MoveLast、MoveNext 以及 MovePrevious 方法,按照
所提供的命令移动 Recordset 的记录指针。运行该过程需要 MoveAny 过程。
Public Sub MoveFirstX()
Dim rstAuthors As ADODB.Recordset
Dim strCnn As String
Dim strMessage As String
Dim intCommand As Integer
' 打开 Authors 表的记录集。
strCnn = "Provider=sqloledb;" & _
"Data Source=srv;Initial Catalog=pubs;User Id=sa;Password=; "
Set rstAuthors = New ADODB.Recordset
rstAuthors.CursorType = adOpenStatic
' 使用客户端游标激活 AbsolutePosition 属性。
rstAuthors.CursorLocation = adUseClient
rstAuthors.Open "authors", strCnn, , , adCmdTable
' 显示当前记录信息并获得用户的方法选择。
Do While True
strMessage = "Name: " & rstAuthors!au_fName & " " & _
rstAuthors!au_lName & vbCr & "Record " & _
rstAuthors.AbsolutePosition & " of " & _
rstAuthors.RecordCount & vbCr & vbCr & _
"[1 - MoveFirst, 2 - MoveLast, " & vbCr & _
"3 - MoveNext, 4 - MovePrevious]"
intCommand = Val(Left(InputBox(strMessage), 1))
If intCommand < 1 Or intCommand > 4 Then Exit Do
' 根据用户输入调用方法。
MoveAny intCommand, rstAuthors
Loop
rstAuthors.Close
End Sub
Public Sub MoveAny(intChoice As Integer, _
rstTemp As Recordset)
' 使用指定方法捕获 BOF 和 EOF。
Select Case intChoice
Case 1
rstTemp.MoveFirst
Case 2
rstTemp.MoveLast
Case 3
rstTemp.MoveNext
If rstTemp.EOF Then
MsgBox "Already at end of recordset!"
rstTemp.MoveLast
End If
Case 4
rstTemp.MovePrevious
If rstTemp.BOF Then
MsgBox "Already at beginning of recordset!"
rstTemp.MoveFirst
End If
End Select
End Sub