Hola de nuevo,
mira se me ha ocurrido una manera de realizar lo que dices con un código bastante simple (aunque tal vez algo largo):
1) Crear una tabla (Numeros), con un campo (numero) de tipo número y la he rellenado
2) He creado un formulario con 9 campos, 8 para los numeros a buscar (numero1, ..., numero8) y uno para los aciertos (aciertos).
3) He creado un botón al que le he agregado (en el evento _Click) el siguiente código:
Código vb:
Ver originalPrivate Sub buscarAciertos_Click()
On Error GoTo Err_buscarAciertos_Click
Dim db As Database
Dim SQLText As String
Dim rst As DAO.Recordset
Dim numero1 As Boolean
Dim numero2 As Boolean
Dim numero3 As Boolean
Dim numero4 As Boolean
Dim numero5 As Boolean
Dim numero6 As Boolean
Dim numero7 As Boolean
Dim numero8 As Boolean
Dim numero As Integer
Dim aciertos As Integer
Set db = CurrentDb()
numero1 = False
numero2 = False
numero3 = False
numero4 = False
numero5 = False
numero6 = False
numero7 = False
numero8 = False
numero = 0
aciertos = 0
SQLText = " SELECT * FROM Numeros "
Set rst = db.OpenRecordset(SQLText, dbReadOnly)
If Not (rst.BOF And rst.EOF) Then
With rst
Do While Not .EOF
numero = .Fields("numero")
If numero = Me!numero1 Then
numero1 = True
End If
If numero = Me!numero2 Then
numero2 = True
End If
If numero = Me!numero3 Then
numero3 = True
End If
If numero = Me!numero4 Then
numero4 = True
End If
If numero = Me!numero5 Then
numero5 = True
End If
If numero = Me!numero6 Then
numero6 = True
End If
If numero = Me!numero7 Then
numero7 = True
End If
If numero = Me!numero8 Then
numero8 = True
End If
.MoveNext
Loop
End With
If numero1 Then
aciertos = aciertos + 1
End If
If numero2 Then
aciertos = aciertos + 1
End If
If numero3 Then
aciertos = aciertos + 1
End If
If numero4 Then
aciertos = aciertos + 1
End If
If numero5 Then
aciertos = aciertos + 1
End If
If numero6 Then
aciertos = aciertos + 1
End If
If numero7 Then
aciertos = aciertos + 1
End If
If numero8 Then
aciertos = aciertos + 1
End If
Me.aciertos = aciertos
Else
MsgBox ("Tabla no encontrada o no hay números para comparar.")
End If
Set rst = Nothing
Set db = Nothing
Exit_Err_buscarAciertos_Click:
Set rst = Nothing
Set db = Nothing
Exit Sub
Err_buscarAciertos_Click:
MsgBox Err.Description
Resume Exit_Err_buscarAciertos_Click
End Sub
Como ves funciona correctamente. Pero en el momento en el que se te añada un campo más al formulario hay que modificar el código...
Mira a ver si éste código te vale.