ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 8650|回复: 9

RECORDSET对象的记录个数怎么得到

[复制链接]

TA的精华主题

TA的得分主题

发表于 2006-6-30 11:49 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

RECORDSET对象(RST2)的记录个数怎么取出啊,我写RST2.RECORDCOUNT是不对的,这个怎么写啊

Set rst2 = CreateObject("adodb.recordset")
conn.Open "provider=microsoft.jet.oledb.4.0;extended properties='Excel 8.0';data source=" & ThisWorkbook.FullName
rst2.Open "select distinct jzm from [data$]", conn, 2, 3

dim m

m=rst2.recordcount

rst2的记录是有5个的,但m返回的结果为-1,请问如何写啊

TA的精华主题

TA的得分主题

发表于 2006-6-30 12:15 | 显示全部楼层

帮楼主顶一个

我知道产生的问题在那,但我不明白根本的原因,也想借贵贴,向高人问路:

rst2.Open "select distinct jzm from [data$]", conn, 2, 3

这一句中的2————其实是代表动态游标(0也是含有动态的成份),VBA中在  动态游标 情况是得不到相关的记录行数的(在VB6。0的一些例子上好象又行,不太明白个中原因)

2或者0不行,1或3就可以即:

conn, 2(0), 3   不行   而conn, 1(3), 3  OK

之前也发过多贴问关于游标与锁定的选择是如何配合的,但一直没有答案,希望楼主能带来好运!

[此贴子已经被作者于2006-6-30 12:17:10编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-6-30 12:40 | 显示全部楼层

这是我网上找的资料

"这是指打开的记录集的游标方式,和锁定方式

光标
Const adOpenForwardOnly   = 0 ''游标只向前浏览记录,不支持分页、Recordset、BookMark
Const adOpenKeyset     = 1 ''键集游标,其他用户对记录说做的修改将反映到记录集中,但其他用户增加或删除记录不会反映到记录集中。支持分页、Recordset、BookMark
Const adOpenDynamic     = 2 ''动态游标功能最强,但耗资源也最多。用户对记录说做的修改,增加或删除记录都将反映到记录集中。支持全功能浏览(ACCESS不支持)。
Const adOpenStatic     = 3 ''静态游标,只是数据的一个快照,用户对记录说做的修改,增加或删除记录都不会反映到记录集中。支持向前或向后移动

锁定
Const adLockReadOnly    = 1 ''锁定类型,默认的,只读,不能作任何修改
Const adLockPessimistic   = 2 ''当编辑时立即锁定记录,最安全的方式
Const adLockOptimistic   = 3 ''只有在调用Update方法时才锁定记录集,而在此前的其他操作仍可对当前记录进行更改、插入和删除等
Const adLockBatchOptimistic = 4 ''当编辑时记录不会被锁定,而更改、插入和删除是在批处理方式下完成的

注意:一般来说浏览数据用1,1,添加数据用1,2,修改删除数据用2,3"

我用的CONN,2,3都是在这里学的.

请高人指导!!!!!

TA的精华主题

TA的得分主题

发表于 2006-6-30 13:35 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
参考:
http://club.excelhome.net/viewthread.php?tid=168546&replyID=&skin=0
注:原解答不是很严谨,具体请参考ADO/recordcount帮助.

TA的精华主题

TA的得分主题

发表于 2006-6-30 14:11 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
另外要想使用 rst2.recordcount 得到记录个数好像一定得设置引用才行,即使你采用了 adOpenKeyset 或 adOpenStatic 参数?

TA的精华主题

TA的得分主题

发表于 2006-6-30 17:01 | 显示全部楼层

我也遇到过类似问题,后用下面的方法得到了记录的总数.你试试,原因不知道,是试出来的

rst2.Open "select distinct jzm from [data$]", conn, adOpenKeyset, adLockPessimistic

TA的精华主题

TA的得分主题

发表于 2006-6-30 17:22 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

TA的精华主题

TA的得分主题

发表于 2006-6-30 18:04 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
试验结果:要使用 adLockPessimistic 参数,也是一定要设置引用。

TA的精华主题

TA的得分主题

发表于 2006-6-30 18:06 | 显示全部楼层
QUOTE:
以下是引用ghl-ghl在2006-6-30 17:22:59的发言:

http://www.yesky.com/imagesnew/software/ado/index.html

去这个网址查一下

不错,在线 ADO 手册!

TA的精华主题

TA的得分主题

发表于 2006-7-28 11:56 | 显示全部楼层

Stpath = ThisWorkbook.Path & Application.PathSeparator & "DB1.mdb" '设定路径

strSQL = "查询语句"

'ADO连接到ACCESS
cnnAccess.Provider = "Microsoft.Jet.OLEDB.4.0"
cnnAccess.Open "Data Source =" & Stpath & ";Jet OLEDB:Database Password=" & ""
rstAnswers.Open strSQL, cnnAccess, adOpenKeyset, adLockOptimistic

MsgBox "共找到" & rstAnswers.RecordCount & "条记录"

不知道这样能不能帮到楼主,

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-5 10:24 , Processed in 0.053385 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表