2013-03-10 2 views
5

В моей базе данных MS Access я запускаю запрос в VB, который должен возвращать две записи. Когда я запускаю его в SQL, я получаю две записи, но при запуске из VBA я получаю два. Вот код в представлении SQL, который получает две записи:Что это за количество записей, возвращаемых 1?

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

Возможно ли, что вы запрашиваете две разные базы данных? –

ответ

14

DAO не извлекает весь набор результатов сразу для всех, кроме самых простых запросов (оптимизации производительности). Чтобы принудительно завершить поиск и использовать действительный счет, используйте rst.MoveLast после открытия набора записей и до извлечения rst.RecordCOunt.

+0

отсортировано - он теперь возвращает обе записи - хороший ответ – Katana24

Смежные вопросы