Đơn giản là field [Ngay] của bạn là DateTime, có luôn thông tin thời gian (hh:nn:ss) nên khi so sánh với biểu thức Ngày không thôi (00:00:00) thì nó không bẳng rồi.
Sửa câu lệnh SQL như bên dưới:
Mã:
strSQL = "SELECT Count(*) FROM " & tableA & " WHERE DateValue(Ngay) = #" & Format(dfrngay, "mm/dd/yyyy") & "#"
- Table thì chả cần phải định dạng ngày làm cho cho mất công. Cứ chọn shortDate. Muốn hiển thị để xem thì định dạng trên Form/Report.
- Trong VBA phải đưa định dạng Date về "mm/dd/yyyy" thì nó mới chuẩn. Hoặc chuẩn quốc tế "yyyy-mm-dd".
- Khai báo Recordset thì phải tường minh là DAO.Recordset, nếu để Recordset không thì Access engine sẽ nghĩ là ADO recordset và áp các phương thức, thuộc tính của thằng ADO.
- Dùng câu lệnh SQL thì dùng "Select Count
..." nhanh hơn "Select Ngay..."