📄 mdprobofx.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML dir=ltr>
<HEAD>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=gb2312"><title>BOF、EOF 和 Bookmark 属性范例</title>
<style>@import url(msdn_ie4.css);</style>
</HEAD>
<BODY>
<h3><a name="mdprobofx"></a>BOF、EOF 和 Bookmark 属性范例</h3>
<p>
该范例使用 <b>BOF</b> 和 <b>EOF</b> 属性,在用户试图移过 <b>Recordset</b> 的第一个和最后一个记录时显示一条信息。它通过 <b>Bookmark</b> 属性使用户对 <b>Recordset</b> 中的记录进行标记,稍后再返回给它。</p>
<pre>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 = "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 bookmark / 4 - go to bookmark]"
intCommand = Val(InputBox(strMessage)) Select Case intCommand
' 向前或向后移动,捕获 BOF 或 EOF。
Case 1
rstPublishers.MoveNext
If rstPublishers.<span class=cfe><b>EOF</b></span> Then
MsgBox "Moving past the last record." & _
vbCr & "Try again."
rstPublishers.MoveLast
End If
Case 2
rstPublishers.MovePrevious
If rstPublishers.<span class=cfe><b>BOF</b></span> Then
MsgBox "Moving past the first record." & _
vbCr & "Try again."
rstPublishers.MoveFirst
End If ' 保存当前记录的书签。
Case 3
varBookmark = rstPublishers.<span class=cfe><b>Bookmark</b></span> ' 转到由存储的书签所指示的记录。
Case 4
If IsEmpty(varBookmark) Then
MsgBox "No Bookmark set!"
Else
rstPublishers.Bookmark = varBookmark
End If Case Else
Exit Do
End Select Loop rstPublishers.CloseEnd Sub
</pre>
<p>
该范例使用 <b>Bookmark </b>和 <b>Filter </b>属性创建记录集的限定视图,将只允许访问书签数组所引用的记录。</p>
<pre>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
Debug.Print "Number of records before filtering: ", rs.RecordCountii = 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.RecordCountrs.MoveFirst
While rs.EOF <> True
Debug.Print rs.AbsolutePosition, rs("au_lname")
rs.MoveNext
Wend
End Sub</pre>
<center> <A HREF="http://www.51windows.Net">www.51windows.Net</A></center>
<SCRIPT LANGUAGE="JavaScript" src="/log/sitelog2.asp"></SCRIPT>
<script src="script.js"></script></BODY>
</HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -