1

I have an issue when looping through a recordset; here is the code:

    Dim query as String
    query = "SELECT * FROM test WHERE " & 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

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.

2 Answers 2

4

You used movelast before the loop so you'll need to movefirst if you want to actually iterate all the records.

Sign up to request clarification or add additional context in comments.

Comments

1

You don't need to write "EOF=true" the "EOF" formula is true in exactly the same situations :)

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.