Originariamente inviato da xit
Il codice è questo a me sembra a posto



Private Function controllanome(ByVal nome1 As String, ByRef dbConn As ADODB.Connection) As Boolean

Dim dbRec As New ADODB.Recordset
Dim strSQL As String

strSQL = "SELECT * FROM Staff WHERE Cognome = '" & nome1 & "'"

DoEvents
Set dbRec = dbConn.Execute(strSQL)
Set dbRec = Nothing
End Function
ma scusami un attimo, se in vece di scrivere questo:
codice:
controllanome = Not dbRec.EOF
scrivi questo:
codice:
if dbrec.eof and dbrec.bof then 'vuol dire che il cognome non esiste
   controllanome=FALSE
else
   consotrllanome=TRUE
end if
quello che hai scritto non ha senso, hai solo impostato il valore di controllanome al valore opposto a dbrecord.eof che non è quello che ti serve. Se non trovi il cognome il record E' VUOTO e lo verifichi controllando che SIA EOF CHE BOF SONO = TRUE (non solo uno dei due).