Ver Mensaje Individual
  #4 (permalink)  
Antiguo 14/01/2012, 21:36
Uran
 
Fecha de Ingreso: enero-2012
Mensajes: 49
Antigüedad: 12 años, 3 meses
Puntos: 4
Respuesta: ¿Como puedo hacer esto?

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 original
  1. Private Sub buscarAciertos_Click()
  2. On Error GoTo Err_buscarAciertos_Click
  3.  
  4.     Dim db As Database
  5.     Dim SQLText As String
  6.     Dim rst As DAO.Recordset
  7.     Dim numero1 As Boolean
  8.     Dim numero2 As Boolean
  9.     Dim numero3 As Boolean
  10.     Dim numero4 As Boolean
  11.     Dim numero5 As Boolean
  12.     Dim numero6 As Boolean
  13.     Dim numero7 As Boolean
  14.     Dim numero8 As Boolean
  15.     Dim numero As Integer
  16.     Dim aciertos As Integer
  17.            
  18.     Set db = CurrentDb()
  19.    
  20.     numero1 = False
  21.     numero2 = False
  22.     numero3 = False
  23.     numero4 = False
  24.     numero5 = False
  25.     numero6 = False
  26.     numero7 = False
  27.     numero8 = False
  28.     numero = 0
  29.     aciertos = 0
  30.    
  31.     SQLText = " SELECT * FROM Numeros "
  32.     Set rst = db.OpenRecordset(SQLText, dbReadOnly)
  33.    
  34.     If Not (rst.BOF And rst.EOF) Then
  35.         With rst
  36.             Do While Not .EOF
  37.                 numero = .Fields("numero")
  38.                 If numero = Me!numero1 Then
  39.                     numero1 = True
  40.                 End If
  41.                 If numero = Me!numero2 Then
  42.                     numero2 = True
  43.                 End If
  44.                 If numero = Me!numero3 Then
  45.                     numero3 = True
  46.                 End If
  47.                 If numero = Me!numero4 Then
  48.                     numero4 = True
  49.                 End If
  50.                 If numero = Me!numero5 Then
  51.                     numero5 = True
  52.                 End If
  53.                 If numero = Me!numero6 Then
  54.                     numero6 = True
  55.                 End If
  56.                 If numero = Me!numero7 Then
  57.                     numero7 = True
  58.                 End If
  59.                 If numero = Me!numero8 Then
  60.                     numero8 = True
  61.                 End If
  62.                 .MoveNext
  63.             Loop
  64.         End With
  65.         If numero1 Then
  66.             aciertos = aciertos + 1
  67.         End If
  68.         If numero2 Then
  69.             aciertos = aciertos + 1
  70.         End If
  71.         If numero3 Then
  72.             aciertos = aciertos + 1
  73.         End If
  74.         If numero4 Then
  75.             aciertos = aciertos + 1
  76.         End If
  77.         If numero5 Then
  78.             aciertos = aciertos + 1
  79.         End If
  80.         If numero6 Then
  81.             aciertos = aciertos + 1
  82.         End If
  83.         If numero7 Then
  84.             aciertos = aciertos + 1
  85.         End If
  86.         If numero8 Then
  87.             aciertos = aciertos + 1
  88.         End If
  89.         Me.aciertos = aciertos
  90.     Else
  91.         MsgBox ("Tabla no encontrada o no hay números para comparar.")
  92.     End If
  93.  
  94.     Set rst = Nothing
  95.     Set db = Nothing
  96.    
  97. Exit_Err_buscarAciertos_Click:
  98.     Set rst = Nothing
  99.     Set db = Nothing
  100.     Exit Sub
  101.  
  102. Err_buscarAciertos_Click:
  103.     MsgBox Err.Description
  104.     Resume Exit_Err_buscarAciertos_Click
  105. 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.