您的位置 首页 > 数码极客

【怎么知道自己电脑是32位还是64位】Recordset对象记录的位置移动

[分享成果,喜悦和正能量]人生的一切不是计算,而是善。不是救,是修好的。

胸襟的宽窄,决定命运的格局,你能包容多少,就能拥有多少。凡事看得开、想得透、拿得起、放得下,学会隐忍性情,懂得克制欲望,退却时理智,谦让时大度,除却杂念私心,少些攀比计较,才会随缘自适。

《VBA数据库解决方案》教程是我推出第二套教程,目前已经是第一版修订了。这套教程定位于中级,是学完字典后的另一个专题讲解。数据库是数据处理的利器,教程中详细介绍了利用ADO连接ACCDB和EXCEL的方法和实例操作,教程第一版的修订内容主要是完成所有程序文件的32位和64位OFFICE系统测试。

这套教程共两册,八十四讲,今后一段时间会给大家陆续推出修订后的教程内容。今日的内容是第17讲:Recordset对象记录的位置移动。

第十七讲 Recordset对象记录位置的定位方法

大家好,今天给继续讲解VBA数据库解决方案的第17讲:Recordset对象记录位置的定位方法。在上一讲中我们讲了MoveFirs,MoveLast,MoveNext,MovePrevious的精准定位方法,对于数据库的操作,大段的代码是很常见的,要记得我以前的建议,不要手工去录入,要利用资料去修正代码,今日我们讲解记录定位的其他常见的方法。

1 Move方法

Move方法可以移动Recordset 对象中当前记录的位置。

语法;record NumRecords, Start

参数:

a: NumRecords 长整型,指定当前记录位置移动的记录数。

b: Start 可选,字符串或变体型,指定从哪儿开始移动。也可为下值之一:

AdBookmarkCurrent(0) 默认。从当前记录开始。

AdBookmarkFirst(1) 从首记录开始。

AdBookmarkLast(2) 从尾记录开始。

  • 实例讲解:我们还是用上一讲的数据,我们要从首行开始移动,移动的是2个记录,我们看看这个时候标签指向的是哪个记录,代码:

Sub mynz_17() '测试数据 第17讲:Recordset对象记录位置的定位方法。

Dim cnADO, rsADO As Object

Dim strPath, strSQL As String

Dim i As Integer

Set cnADO = CreateObject("ADODB.Connection")

Set rsADO = CreateObject("ADODB.RecordSet")

strPath = T & "\myda;

cnADO.Open "Provider=Micro;Data Source=" & strPath

strSQL = "SELECT * FROM 员工信息 WHERE 部门='一厂'"

r strSQL, cnADO, 1, 3

Sheets("17").Select

Cells.ClearContents


For i = 0 To r - 1

Sheets("17").Cells(1, i + 1) = r(i).Name

Next i

r

r 2, 0


Sheets("17").Rows("2:2").Select

Selec

For j = 0 To r - 1

Sheets("17").Cells(2, j + 1) = r(j)

Next j

r

cnADO.Close

Set rsADO = Nothing

Set cnADO = Nothing

MsgBox "ok!"

End Sub

代码截图:

代码解读:

对于其他的地方,我在上一讲已经非常详细的讲过了,只对下面的代码做一下说明:

r

r 2, 0

我们首先要把代码移动到第一条记录,让后向下移动,从当前记录即第一个记录开始移动,每次移动两个记录,然后显示记录的内容。

下面我们测试一下,先看看整个的记录集:

那么经过记录的移动后,应该为绿色框的数据,是不是呢?我们看看本程序的运行结果:

结果显示和我们当初的预想是一致的。

2 在Recordset对象中定位游标位置的其他办法

1) 使用Recordset 对象的AbsolutePosition 属性。

AbsolutePosition属性可以设置或返回游标当前的记录位置。下面代码将游标当前位置保存在变量myc中,然后设置为第10条记录:

myc = r

r = 10

2) 使用Recordset 对象的Bookmark属性。

Bookmark属性可以设置或返回游标当前当前记录的书签。Recordset 对象的每一条记录都有唯一的“书签”值。下面代码先将游标当前位置设置为第10条记录,然后将当前记录的书签保存到变量myc中,然后移动到下一条记录(实际使用时一般是进行其它的处理操作),最后在通过设置Bookmark属性将记录定位到原来的第10条记录。

r = 10

myc = r

r

r =myc

与使用AbsolutePosition 属性的区别是,使用Bookmark属性时,往往不知道或不关心记录所处的实际位置。

后两种方法的实例就不再演示了,以后如果有用到的再说明。

今日内容回向:

1 Recordset对象的定位都有哪些方法?本讲重点讲了什么方法?

2 如何理解record的参数NumRecords, Start呢?

本讲内容参考程序文件:VBA与数据库操作(第一册).xlsm

我20多年的VBA实践经验,全部浓缩在下面的各个教程中:

第7套教程(共三册):《VBA之EXCEL应用》:是对VBA基本的讲解

第1套教程(共三册):《VBA代码解决方案》:是入门后的提高教程

第4套教程(16G):VBA代码解决方案之视频(第一套的视频讲解)

第3套教程(共两册):《VBA数组与字典解决方案》:是对数组和字典的专题讲解

第2套教程(共两册):《VBA数据库解决方案》:是对数据库的专题讲解

第6套教程(共两册):《VBA信息获取与处理》:讲解VBA的网络及跨程序应用

第5套教程(共两册):VBA中类的解读和利用:类及接口技术的讲解

第8套教程(共三册):VBA之Word应用(最新教程):word中VBA的利用

上述教程的学习顺序:

① 7→1→3→2→6→5或者7→4→3→2→6→5。

② 7→8

关于作者: admin

无忧经验小编鲁达,内容侵删请Email至wohenlihai#qq.com(#改为@)

热门推荐