1

这是我的代码:

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 或调试窗口中的所有记录都完美显示。问题是它没有显示或工作记录计数属性。

4

1 回答 1

0

你不能RecordCount以这种方式使用。

只有在您遍历所有记录之后,它才会为您提供正确数量的记录,而不是您遍历记录之前。

于 2016-04-01T08:16:55.960 回答