you can access fields by name, eg: Components_recordset("componentsID")
also, you are showing a message for each field, whereas you should be showing a message per record instead, eg:
VB Code:
Count = Components_recordset.recordcount
For counter = 1 to Count
Msgbox Components_recordset("componentsID") & " " & Components_recordset("component_Name")" is running low"
Components_recordset.movenext
next counter
alternatively (essentially the same code, just looks different):
VB Code:
With Components_recordset
Do While Not (.EOF)
Msgbox .Fields("componentsID") & " " & .Fields("component_Name")" is running low"
.MoveNext
Loop
End With