Tôi đang cố gắng lấy số bản ghi của một bảng và nếu số lớn hơn 17, hãy tạo một bảng mới.Số bản ghi trong bảng Truy cập bằng cách sử dụng VBA
Dim rst As DAO.Recordset
strSQL = "Select * from SKUS"
Set rst = db.OpenRecordset(strSQL)
If rst.RecordCount > 17 Then
Set tdf = db.CreateTableDef("161-0363")
Set fld = tdf.CreateField("SKUS", dbText, 30)
tdf.Fields.Append fld
Set fld = tdf.CreateField("Count", dbInteger)
tdf.Fields.Append fld
db.TableDefs.Append tdf
End If
Mã này không tạo ra một bảng mới, nhưng khi tôi thay đổi câu lệnh if để này, nó hoạt động:
...
If rst.RecordCount > 0 Then
Set tdf = db.CreateTableDef("161-0363")
...
Vì vậy, các RecordCount đang trở lại 1, tôi nghĩ. Tại sao chuyện này đang xảy ra? Tôi biết chắc chắn bảng có 18 hàng trong đó.
Có ai có thể giúp tôi không?
Oh đã nhận nó! Khi tôi thêm MoveLast, nó đã hoạt động. Cảm ơn! – Shubham
Tôi đã sử dụng một bảng Liên kết và một khi tôi đã thêm .MoveLast nó hoạt động tốt. Tôi không có .MoveLast trước và nó hoạt động cho mọi bảng cục bộ chứ không phải bảng được nối kết. Không bao giờ có hơn 300 bảng trong bảng của tôi. Tôi biết bạn nên làm thêm truy vấn vba ít hơn nhưng điều này làm việc cho bây giờ. Cảm ơn bạn. – RazorSky