Q:

Why am I in an endless loop when using LIKE in Access VBA query

I am using openrecordset to do a select query but I want the query to look for a specific word within a column and only return those records. 
I tried different styles and it seems I keep getting the same type of error:
runtime error 6: overflow.  that is because of a counter that I have, which an integer can only hold no more that 32,000 bytes. 
If I remove the counter, It because an endless loop, no error messages just stuff running in the background.  I have to restart access. 
'Variables
Dim counter As Integer

'DB variables
Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = CurrentDb

'Get records query
Set rs = db. OpenRecordset("SELECT * FROM Price_List WHERE Description LIKE '*cabin*'")

'Determine if the specified valve for this project was found
If rs. EOF Then
    MsgBox "No records were found for enclosures." &  vbNewLine & vbNewLine & _
    "You can contact someone", vbInformation + vbOKOnly, "No Records Found"
    End
End If

List10.RowSource = ""

'display
List10.ColumnCount = 5
List10.ColumnWidths = "1500;4000;1200;1200;1200" 'Setting column widths for each record

counter = 0
Do
    If counter = 0 Then
        List10.AddItem ("Part Number)
        List10.AddItem (rs!PartNumber)
    Else
        List10.AddItem (rs!PartNumber)
    End If

    'counter = counter + 1
Loop Until rs. EOF

Label14.Caption = rs. RecordCount

rs. Close
db. Close

I expect it to return at least 5 records but I guess it's returning way more! 

A:

Several issues. 
First of all, there is no guarantee the cursor will be the first record so you have to use
If rs. EOF AND rs. BOF

to check for no records returned. 
You then have to start with 
rs. MoveFirst

to go to the first record and then in your loop you need
rs. MoveNext

to move to the next record and so on
Your current code just infinitely runs on the one record the recordset happens to open in.