title: Excel VBA - Loop through recordset
body: <p>I have an issue when looping through a recordset; here is the code:</p>
  
  <pre><code>    Dim query as String
      query = "SELECT * FROM test WHERE " &amp; filter
  
      ' Declare variables'
      Dim objMyConn As ADODB.Connection
      Dim objMyCmd As ADODB.Command
      Dim objMyRecordset As ADODB.Recordset
      Dim objRst As ADODB.Recordset
  
      Set objMyConn = New ADODB.Connection
      Set objMyCmd = New ADODB.Command
      Set objMyRecordset = New ADODB.Recordset
  
      'Open Connection'
      objMyConn.ConnectionString = "Provider=SQLOLEDB;Data Source=MyServer;Initial Catalog=MyDB;User ID=test;Password=test"
      objMyConn.Open
  
      'Set and Excecute SQL Command'
      Set objMyCmd.ActiveConnection = objMyConn
      objMyCmd.CommandText = query
      objMyCmd.CommandType = adCmdText
  
      'Open Recordset'
      Set objMyRecordset.Source = objMyCmd
      objMyRecordset.CursorLocation = adUseClient
      objMyRecordset.CursorType = adOpenStatic
      objMyRecordset.Open
  
      Dim FindRecordCount As Integer
      If objMyRecordset.EOF Then
          FindRecordCount = 0
      Else
          objMyRecordset.MoveLast
          FindRecordCount = objMyRecordset.RecordCount ' In this case it returns 4
      End If
  
       Do Until objMyRecordset.EOF = True
          ' Get variables
  
          ...
  
          ' Move to next Record
          objMyRecordset.MoveNext
       Loop
  </code></pre>
  
  <p>When I check how many rows has the recordset , it returns 4, but goes only once through the loop. In this case, it should loop 4 times.</p>