请教高手:数据库记录定位的问题!

haikuotiankong 2003-09-17 11:21:29
vb中如何快速在某一记录上定位?如:tb1中公有13条记录,我想访问第7条,能否不用将记录一条条的移到7,而直接到第7条?(不要用检索主键ID的方法,因为ID可能不连续)。谢谢大家!
...全文
63 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
liufeng7600 2003-09-17
  • 打赏
  • 举报
回复
对了
如果第七条
则是

.....

dbr.Move 6
......
记录集从 0 开始



microyzy 2003-09-17
  • 打赏
  • 举报
回复
Move 方法


移动 Recordset 对象中当前记录的位置。

语法

recordset.Move NumRecords, Start

参数

NumRecords 带符号长整型表达式,指定当前记录位置移动的记录数。

Start 可选,字符串或变体型,用于计算书签。也可为下列 BookmarkEnum 值之一:

常量 说明
AdBookmarkCurrent 默认。从当前记录开始。
AdBookmarkFirst 从首记录开始。
AdBookmarkLast 从尾记录开始。


说明

所有 Recordset 对象都支持 Move 方法。

如果 NumRecords 参数大于零,则当前记录位置将向前移动(向记录集的末尾)。如果 NumRecords 小于零,则当前记录位置向后移动(向记录集的开始)。

如果 Move 调用将当前记录位置移动到首记录之前,则 ADO 将当前记录放置在记录集(BOF 为 True)的首记录之前。在 BOF 属性已经为 True 时试图向后移动将产生错误。

如果 Move 调用将当前记录位置移动到尾记录之后,则 ADO 将当前记录放置在记录集(EOF 为 True)的尾记录之后。在 EOF 属性已经为 True 时试图向前移动将产生错误。

从空的 Recordset 对象调用 Move 方法将产生错误。

如果传送 Start 参数,则移动相对于该书签的记录(假定 Recordset 对象支持书签)。如果没有指定,则移动相对于当前记录。

如果使用 CacheSize 属性在本地缓存来自提供者的记录,则在传送将当前记录位置移动到当前缓存的记录组之外的 NumRecords 参数时, ADO 将不得不从目标记录开始检索新的记录组。CacheSize 属性决定新检索记录组的大小,而目标记录是检索到的第一个记录。

如果 Recordset 对象是仅向前的,则用户仍然可以传送小于零的 NumRecords 参数(只要目标在已缓存记录的当前集合中)。如果 Move 调用将当前记录位置移动到第一个已缓存记录的前一个记录,将产生错误。因此可使用记录缓存,它在支持仅向前滚动的提供者上支持完全滚动。由于缓存的记录将加载到内存,因此应避免不必要地缓存过多记录。即使仅向前 Recordset 对象支持这种方式的向后移动,在任何仅向前的 Recordset 对象上调用 MovePrevious 方法仍将产生错误。
microyzy 2003-09-17
  • 打赏
  • 举报
回复
使用move方法啊
liufeng7600 2003-09-17
  • 打赏
  • 举报
回复
Dim DBc As ADODB.Connection
Set DBc = New ADODB.Connection
DBc.ConnectionString = "Provider=Microsoft. ......Info=False"
DBc.Open
Dim DBr As New ADODB.Recordset
DBr.Open "select * from 表名 ", DBc, adOpenStatic, adLockReadOnly, adCmdText

DBr.Move 7

MsgBox DBr.Fields("字段名")
DBr.Close

msgbox 显示
gzqg 2003-09-17
  • 打赏
  • 举报
回复
filter
zhangying7725 2003-09-17
  • 打赏
  • 举报
回复
up

1,217

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧