<p><font face="Verdana">MoveFirst、MoveLast、MoveNext 和 MovePrevious 方法范例 (VB)</font></p><font face="Verdana">
<p><br/>本范例使用 MoveFirst、MoveLast、MoveNext 和 MovePrevious 方法,按照提供的
命令移动 Recordset 记录指针。运行此过程需要 MoveAny 过程。</p>
<p>Public Sub MoveFirstX()</p>
<p> Dim rstAuthors As ADODB.Recordset<br/> Dim strCnn As String<br/> Dim strMessage As String<br/> Dim intCommand As Integer</p>
<p> ' Open recordset from Authors table.<br/> strCnn = "Provider=sqlo
LEDb;" & _<br/> "Data Source=srv;Ini
tial Catalog=Pubs;User Id=sa;Password=; "<br/> Set rstAuthors = New ADODB.Recordset<br/> rstAuthors.CursorType = adOpenStatic<br/> ' Use client cursor to enable AbsolutePosition property.<br/> rstAuthors.CursorLocation = adUseClient<br/> rstAuthors.Open "Authors", strCnn, , , adCmdTable</p>
<p> ' Show current record information and get user's method choice.<br/> Do While True</p>
<p> strMessage = "Name: " & rstAuthors!au_fName & " " & _<br/> rstAuthors!au_lName & vbCr & "Record " & _<br/> rstAuthors.AbsolutePosition & " of " & _<br/> rstAuthors.RecordCount & vbCr & vbCr & _<br/> "[1 - MoveFirst, 2 - MoveLast, " & vbCr & _<br/> "3 - MoveNext, 4 - MovePrevious]"<br/> intCommand = Val(Left(InputBox(strMessage), 1))<br/>
IF intCommand < 1 Or intCommand > 4 Then Exit Do</p>
<p> ' Call method based on user's input.<br/> MoveAny intCommand, rstAuthors<br/> Loop<br/> rstAuthors.Close</p>
<p>End Sub</p>
<p>Public Sub MoveAny(intChoice As Integer, _<br/> rstTemp As Recordset)</p>
<p> ' Use specified method, trapping for BOF and EOF.<br/> Select Case intChoice<br/> Case 1<br/> rstTemp.MoveFirst<br/> Case 2<br/> rstTemp.MoveLast<br/> Case 3<br/> rstTemp.MoveNext<br/> If rstTemp.EOF Then<br/> MsgBox "Already at end of recordset!"<br/> rstTemp.MoveLast<br/> End If<br/> Case 4<br/> rstTemp.MovePrevious<br/> If rstTemp.BOF Then<br/> MsgBox "Already at beginning of recordset!"<br/> rstTemp.MoveFirst<br/> End If<br/> End Select</p>
<p>End Sub</p>
<p></font> </p>
0