Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

同样可以打开数据源,但是利用recordcount出来的结果一个是“1”,另一个则可以正常出结果。

布鲁斯  发表于:2013-11-29 16:50:05  
复制

好像是DAO和ADODB的差异,请高手看看


第一种使用方法,这种方法无论如何仅仅会返回一个:1

Dim rstKey As Recordset
Set rstKey = CurrentDb.OpenRecordset("select * from tS_ItemKeyWord;")
Debug.Print rstKey.BOF, rstKey.RecordCount

第二种使用方法,这种方法可以正常出结果

Dim rst As ADODB.Recordset
Set rst = New ADODB.Recordset
rst.Open "select * from tS_ItemOther where OrderSuggest is null;", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
Debug.Print rst.BOF, rst.RecordCount


究竟哪里不同呢,是不是哪里漏了?


 

Top
落尘_小新 发表于:2013-11-29 18:49:28
Dim rstKey As Recordset
    Set rstKey = CurrentDb.OpenRecordset("select * from 员工表;")
    rstKey.MoveLast
    rstKey.MoveFirst
    Debug.Print rstKey.BOF, rstKey.RecordCount
这样试试.


落尘_小新 发表于:2013-11-29 18:49:29

使用RecordCount属性来找出有多少记录在记录集或TableDef对象被访问。RecordCount属性不显示有多少记录中包含动态集,快照或forward-only-type记录集对象,直到所有的记录被访问。一旦过去的记录被访问,RecordCount属性显示一遍的总数记录在记录集或TableDef对象。


以上内容为帮助文档对DAO使用RecordCount属性的说明翻译过来的(本人不懂英语,只能利用软件来翻译,译文可能不太准确,但大概意思就是这样)


总记录:2篇  页次:1/1 9 1 :