2013-03-10 41 views
5

Trong MS Access DB của tôi, tôi đang chạy một truy vấn trong VB sẽ trả về hai bản ghi. Khi tôi chạy nó trong SQL tôi nhận được hai hồ sơ nhưng khi chạy từ VBA tôi nhận được hai. Đây là mã trong giao diện SQL mà được hai kỷ lục:Số hồ sơ này là bao nhiêu?

SELECT * 
FROM tblWebMeetingData 
WHERE [Last Name] LIKE 'Marx'; 

Và khi tôi gọi đây là trong VBA như sau:

SQL = "SELECT * FROM tblWebMeetingData WHERE [Last Name] LIKE 'Marx';" 
Set rst = CurrentDb.OpenRecordset(SQL) 
MsgBox ("Number of records: " & rst.RecordCount) 

tôi nhận được một bản ghi cho số lượng hồ sơ. Không phải là số lượng hồ sơ giả sử để đếm tất cả các hồ sơ được trả về từ một câu lệnh SQL hoặc bảng? Tôi đang làm gì sai ở đây?

Cảm ơn

+0

Có thể bạn đang truy vấn hai cơ sở dữ liệu khác nhau không? –

Trả lời

14

DAO không truy xuất toàn bộ kết quả cùng một lúc cho tất cả trừ truy vấn đơn giản nhất (tối ưu hóa hiệu suất). Để buộc khôi phục hoàn toàn và sử dụng số lượng bản ghi hợp lệ rst.MoveLast sau khi mở recordset và trước khi truy xuất rst.RecordCOunt.

+0

được sắp xếp - bây giờ nó trả về cả hai bản ghi - câu trả lời hay – Katana24

Các vấn đề liên quan