在我的MS Access DB中,我在VB中运行一个应该返回两条记录的查询。当我在SQL中运行它时,我得到两条记录,但是当从VBA运行时,我得到两条记录。以下是SQL视图中的代码,它获取两条记录:
SELECT *
FROM tblWebMeetingData
WHERE [Last Name] LIKE 'Marx';
当我在VBA中这样称呼它时:
SQL = "SELECT * FROM tblWebMeetingData WHERE [Last Name] LIKE 'Marx';"
Set rst = CurrentDb.OpenRecordset(SQL)
MsgBox ("Number of records: " & rst.RecordCount)
我获得了一条记录数量的记录。记录计数是不是要计算从SQL语句或表返回的所有记录?我在这里做错了什么?
由于
答案 0 :(得分:20)
除了最简单的查询(性能优化)之外,DAO不会立即检索整个结果集。强制使用完整检索和有效记录数
打开记录集之后和检索rst.MoveLast
之前rst.RecordCOunt
。
答案 1 :(得分:0)
对于recordcount属性,您需要将光标类型设置为
RS.Open SQL,MyConn,adOpenStatic,adLockReadOnly,adCmdText
如果无法执行,则需要使用ADOVBS.INC作为页面顶部的包含文件,您可以从互联网下载并使用它