为什么此记录计数返回1?

时间:2013-03-10 11:48:17

标签: vba ms-access access-vba

在我的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语句或表返回的所有记录?我在这里做错了什么?

由于

2 个答案:

答案 0 :(得分:20)

除了最简单的查询(性能优化)之外,DAO不会立即检索整个结果集。强制使用完整检索和有效记录数 打开记录集之后和检索rst.MoveLast之前rst.RecordCOunt

答案 1 :(得分:0)

对于recordcount属性,您需要将光标类型设置为

RS.Open SQL,MyConn,adOpenStatic,adLockReadOnly,adCmdText

如果无法执行,则需要使用ADOVBS.INC作为页面顶部的包含文件,您可以从互联网下载并使用它