Ho creato un modulo ed una funzioneche mi completa automaticamente i campi di una sottomaschera

codice:
Option Compare Database

Dim ws As Workspace
Dim db As Database
Dim qd As QueryDef
Dim RS As Recordset
Dim strSQL As String

Public Function cerca() As Boolean

Dim FRM As Form
Set FRM = Forms("Pannello").Vendite.Form

Set ws = DBEngine.Workspaces(0)
Set db = CurrentDb

strSQL = "SELECT * FROM Articoli WHERE BARCODE= '" & FRM!barcode1 & "'"

Set RS = db.OpenRecordset(strSQL)

If RS.EOF Then
GoTo errLogon
End If
Forms!Pannello.Vendite!codice1 = RS!referenza
Forms!Pannello.Vendite!descrizione1 = RS!desc
Forms!Pannello.Vendite!prezzo1 = RS!prezzo


RS.Close
db.Close
Exit Function

errLogon:
MsgBox "ATTENZIONE! - Articolo sconosciuto!", 0, "xx"

RS.Close
db.Close
End Function
il modulo funziona, ma ora ho bisogno di fare la stessa cosa su un'altra sottomaschera della stessa maschera.
Il problema è che se aggiungo una funzione (con i campi relativi alla nuova sottomaschera ovviamente)
codice:
Public Function cerca2() As Boolean

Dim FRM As Form
Set FRM = Forms("Pannello").Clienti.Form

Set ws = DBEngine.Workspaces(0)
Set db = CurrentDb

strSQL = "SELECT * FROM Tessere WHERE BARCODE= '" & FRM!Testo0 & "'"

Set RS = db.OpenRecordset(strSQL)

If RS.EOF Then
GoTo errLogon
End If
Forms!Pannello.Clienti!Testo1 = RS!NOME
Forms!Pannello.Clienti!Testo2 = RS!COGNOME
Forms!Pannello.Clienti!Testo3 = RS!INDIRIZZO


RS.Close
db.Close
Exit Function

errLogon:
MsgBox "ATTENZIONE! - Cliente sconosciuto!", 0, "xx"

RS.Close
db.Close
End Function
mi da un "Errore di runtime 3061 - Previsto 1" e mi localizza l'errore in:
Set RS = db.OpenRecordset(strSQL)



Mentre se creo un nuovo modulo uguale al primo (ma sempre con i campi relativi alla nuova sottomaschera) non mi funziona e non mi funziona nemmeno quello precedentemente creato per la prima sottomaschera.

Qualcuno mi sa aiutare?