【发布时间】:2020-04-27 10:54:10
【问题描述】:
我试图了解我在下面的代码 sn-p 中做错了什么。我正在读取一些具有特定客户端 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 的数据类型更改为 Long - 无效
- 在 GetRows 属性中将 Rs.Count 替换为 (NoL) - 无效
如果我将 NoL 替换为一个值,例如100 然后代码工作正常然后所有记录都加载到 LineGrid 但我没有真正的记录数。
我已尝试使用 .movefirst 属性移动记录指针(您会注意到该行当前已被注释掉)- 无效
最终我需要 LineGrid 来包含表中的数据和 NoL 来获得真实的记录数
【问题讨论】: