我正在尝试了解下面的代码片段中我做错了什么。我正在读取具有特定客户端ID的一些会话记录,并将记录返回到LineGrid中以进行进一步处理。问题在于行NoL = Rs.RecordCount查询返回多行(我可以在开发环境中看到此行)。因此,在一个示例中,即使Rs.Recordcount较大(3),NoL仍被分配值为1。我可以直接在调试环境中进行检查。
有可能声明明显的偶数记录数是3,仅将一行插入LineGrid中
Dim Db As DAO.Database
Dim RsCL As DAO.Recordset 'ClientSession
Dim NoL As Integer
Dim LineGrid As Variant
Set RsCL = Db.OpenRecordset("Select * From ClientSession WHERE ClientID = " & CDID)
If RsCL.EOF Then
MsgBox ("Nothing to Invoice")
Exit Sub
End If
'RsCL.MoveFirst
NoL = RsCL.RecordCount
LineGrid = RsCL.GetRows(NoL)
RsCL.Close
我已经尝试过
如果我将NoL替换为例如100,然后代码工作正常,然后将所有记录加载到LineGrid中,但我没有真实的记录数。
我曾尝试使用.movefirst属性移动记录指针(您会注意到该行当前已被注释掉)-无效
最终,我需要LineGrid包含表中的数据,而NoL才具有真实记录数
当您打开记录集时,并非所有记录都会立即加载。为了强制加载所有记录,需要先移至最后一条记录,然后再移回第一条记录:
RsCL.MoveLast
RsCL.MoveFirst
问候,