Parece-me que, efectivamente, o que lhe falta é abrir a recordset(de facto,você parece estar a tentar filtrá-la antes de abri-la):
- Esta linha RS.Filter = "Nome like'" & strMedicamento & "*'" 'filtra os registros de sua tabela, não é verdadeira pois ela não 'filtra os registos de sua tabela, porque uma recordset não é uma tabela
- Para fazer o que pretende eu faço assim:
Aqui abro a recordset:
- Public Function MostrarTodos() As ADODB.Recordset
strSQL = "SELECT * FROM tENTIDADES "
'Criar uma instância da classe do conjunto de registos ADO e
'definir as suas propriedades
Set rstEntidades = New ADODB.Recordset
With rstEntidades
Set .ActiveConnection = dbCurrent
.Source = strSQL
.LockType = adLockOptimistic
.CursorType = adOpenKeyset
.CursorLocation = adUseClient
.Open
End With
Set MostrarTodos = rstEntidades
End Function
Depois para escolher os registos que quero, faço assim:
If [ent_num] <> " " Then
Pesquisa
rstEntidades.Filter = "ent_num= " & [ent_num] & ""
If rstEntidades.BOF = True Then
MsgBox " Não existem registos correspondentes"
Exit Sub
Else
rstEntidades.MoveMin
MostrarRegisto
LibertarCampos
End If
Else
If entnome = "" Then
MsgBox " Tem que indicar o nome a pesquisar"
[ent_nome].SetFocus
Exit Sub
Else
Pesquisa
rstEntidades.Filter = "ent_nome like '" & entnome & "%" & "'"
If rstEntidades.BOF = True Then
MsgBox " Não existem registos correspondentes"
Exit Sub
Else
rstEntidades.MoveMin
MostrarRegisto
LibertarCampos
End If
End If
End If