【发布时间】:2025-12-21 17:30:12
【问题描述】:
这是我的代码:
Dim conServer As ADODB.Connection
Dim rstResult As ADODB.Recordset
Dim strSQL As String
Set conServer = New ADODB.Connection
conServer.ConnectionString = "PROVIDER=SQLOLEDB; " _
& "DATA SOURCE=192.168.0.204; " _
& "INITIAL CATALOG=REPORTDB2; " _
& "User ID=sa;" _
& "Password="
conServer.Open
Set rstResult = New ADODB.Recordset
strSQL = "set nocount on; "
strSQL = strSQL & "select * from Table1;"
rstResult.ActiveConnection = conServer
rstResult.Open strSQL
MsgBox rstResult.RecordCount, , rstResult.Fields(1).Value
With rstResult
.MoveFirst
Do Until rstResult.EOF
Debug.Print abc & "," & .Fields(0) & "," & .Fields(1).Value
.MoveNext
Loop
End With
MSGBOX 线显示我 -1 作为 RecordCount,但同时 rstResult.Fields(1).Value 显示第一个记录值。即使我通过“直到...循环”检查 msgbox 或调试窗口中的所有记录都完美显示。 问题是它没有显示或工作记录计数属性。
【问题讨论】:
-
RecordCount仅表示访问最后一条记录后的记录数。如果您在循环之后放置MsgBox rstResult.RecordCount,它将起作用。见msdn.microsoft.com/en-us/library/office/ff821452.aspx
标签: vba excel record-count