Bueno, el error es porque estás intentando comparar dos recordsets y eso no lo permite VB, puedes comparar variables, pero no objetos.
Por lo que veo, esa función lo que pretende es verificar si el recordset tiene registros, y si es así, sumarle una unidad y quieres utilizar la función con diferentes recordsets.
Si es así, creo que reducirías bastante el código si le pasas un segundo parámetro con el nombre del campo:
Código:
Private Function AutoCodigo(record As DAO.Recordset, sCampo As String) As String
If record.BOF = True And record.EOF = True Then
' record!sCampo = "1"
AutoCodigo = "1"
Else
record.MoveLast
AutoCodigo = Str(Val(record(sCampo) + 1)) ' <- La conversión SI es correcta
End If
End Function
Y para llamarla:
Código:
Dim sNumero As String
sNumero = AutoCodigo(rsAddR, "ID_Recibo")
sNumero = AutoCodigo(rsOtro, "Cod_Venta")
Y después haces con la variable "sNumero", lo que quieras.
Un saludo