为什么recordset的recordcount总是为-1 我用的数据库为mysql的数据库在系统中加了个mysql的ODBC驱动我用ADO查询的时候为什么老是显示记录总数为-1而且当前记录位置也一直为-1 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 为记录集设置正确的游标类型,具体内容可以看ADO的帮助。 程序有问题,你所取的记录集为空当然为-1了。我也发生过类似情况。用for i=0 to recordset.recordcount-1检查一下。 这样就可以 Rs.CursorLocation = adUseClient Rs.Open "select * from employees", CN, adOpenDynamic, adLockBatchOptimistic msgbox Rs.recordcount 支持 lihonggen0(李洪根,用.NET,标准答案来了) 有的资料说,得执行Rs.MoveLast然后再Rs.RecordCount才能得到准确的记录数. from ADO210.CHM使用 RecordCount 属性可确定 Recordset 对象中记录的数目。ADO 无法确定记录数时,或者如果提供者或游标类型不支持 RecordCount,则该属性返回 –1。读已关闭的 Recordset 上的 RecordCount 属性将产生错误。如果 Recordset 对象支持近似定位或书签(即 Supports (adApproxPosition) 或 Supports (adBook) 各自返回 True),不管是否完全填充该值,该值将为 Recordset 中记录的精确数目。如果 Recordset 对象不支持近似定位,该属性可能由于必须对所有记录进行检索和计数以返回精确 RecordCount 值而严重消耗资源。Recordset 对象的游标类型会影响是否能够确定记录的数目。对仅向前游标,RecordCount 属性将返回 -1,对静态或键集游标返回实际计数,对动态游标取决于数据源返回 -1 或实际计数。 设置记录集的Cursorlocation=aduseclient 设置记录集的Cursorlocation=aduseclientRs.MoveFIRSTRs.MoveLastmsgbox Rs.recordcount Cursorlocation=aduseclient上面都说了当Cursorlocation=adUseServer时要用adOpenStatic或者adOpenKeyset方式打开记录集,如果想用你必须设置Cursorlocation=aduseclient 谢谢大家的回答顺便说一句,当记录集没有记录的时候是不能MOVEFIRST 或都MOVELAST的 而且光设置为客户机游标是不够的, lihonggen0(李洪根,用.NET,标准答案来了) 的回答是对的 循环问题 请问:如何点击一幅图片后连接到internet上? VB能否实现基本防火墙功能 一个很困惑我的问题,程序已贴出,请指教! 我有几个很简单的问题,大家都来看看! 高手请回答我的问题吧!很急的。 求助:将excel导入到access 谁知道VB中如何调用ORACLE数据库的序列? Treeview 怎么屏闭网页中的FLASH 用listview显示数据.怎么才能使数据按照单双行背景颜色不同. 谁知道如何将AEECESS数据库转换成mySQL数据库???
用for i=0 to recordset.recordcount-1检查一下。
Rs.Open "select * from employees", CN, adOpenDynamic, adLockBatchOptimistic msgbox Rs.recordcount
使用 RecordCount 属性可确定 Recordset 对象中记录的数目。ADO 无法确定记录数时,或者如果提供者或游标类型不支持 RecordCount,则该属性返回 –1。读已关闭的 Recordset 上的 RecordCount 属性将产生错误。如果 Recordset 对象支持近似定位或书签(即 Supports (adApproxPosition) 或 Supports (adBook) 各自返回 True),不管是否完全填充该值,该值将为 Recordset 中记录的精确数目。如果 Recordset 对象不支持近似定位,该属性可能由于必须对所有记录进行检索和计数以返回精确 RecordCount 值而严重消耗资源。Recordset 对象的游标类型会影响是否能够确定记录的数目。对仅向前游标,RecordCount 属性将返回 -1,对静态或键集游标返回实际计数,对动态游标取决于数据源返回 -1 或实际计数。
Rs.MoveFIRST
Rs.MoveLast
msgbox Rs.recordcount
当Cursorlocation=adUseServer时要用
adOpenStatic或者adOpenKeyset方式打开记录集,如果想用你必须设置
Cursorlocation=aduseclient