Se o banco de dados é em Access, deixo-lhe um exemplo básico com
late binding:
Private Sub AcessoBaseDados()
Dim E As Object, BD As Object, rst As Object
Set E = CreateObject("DAO.DBEngine.36") 'Access 2000/2003
Set E = CreateObject("DAO.DBEngine.120") 'Access 2007 /2010
Set BD = E.OpenDatabase("C:\Database.mdb")
Set rst = BD.OpenRecordset("SELECT Campo FROM Tabela WHERE Campo=Valor")
If rst.EOF Then
'Não encontrou registos
Else
'Encontrou registos
'Listar todos
Do Until rst.EOF
Debug.Print rst!Campo
rst.MoveNext
Loop
End If
BD.Close
End Sub