2016-03-29 2 views
1

Это мой код:RecordCount недвижимости не работает

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, показывающий первое значение записей. Даже я проверяю «do until ... loop» все записи в msgbox или в окне отладки отлично отображаются. Проблема заключается в том, что он не отображает или не использует свойство recordcount.

+0

'RecordCount' указывает только количество записей после обращения к последней записи. Если вы поместите 'MsgBox rstResult.RecordCount' после своего цикла, он будет работать. См. Https://msdn.microsoft.com/en-us/library/office/ff821452.aspx – Ambie

ответ

0

Вы не можете использовать RecordCount таким образом.

Это даст вам правильное количество записей, только после того, как вы петельные через все записи, но не до того вы петельный через запись.

Смежные вопросы