¿Es posible comparar muchos cuadros de texto en access?

Tengo 100 cuadros de texto

Que no se guardan en ninguna tabla, solo quiero hacer la validación de duplicados.

Lo que quiero es que si alguno de esos 100 registros es duplicado

Me marque ya sea cambiando de color el cuadro de texto

O un mensaje de que esta duplicado ese dato

¿Se puede?

¿Cómo se podría hacer?

1 respuesta

Respuesta
2

Te pongo una forma de hacerlo, lo que no exluye que haya otras, aunque ésta es simple de implementar y el código es corto.

Descripción: En el Formulario que tengas esos 100 0 50 y así hasta el máximo que puedes tener que me parece que rondan lo 750, pones un Botón que para el Ejemplo llamo >> BtnTextosIguales

Crea una Tabla Temporal que yo llamo >> TblValControles, con dos Campos, ambos de tipo Texto y que a su vez he llamado >> NombControl y ContenidoControl.

En el Modulo de código del propio Formulario, pones el Procedimiento del Evento Click del botón

Private Sub BtnTextosIguales_Click()
'Declaración de Variables
Dim Ctrl As Access.Control
Dim StrSQL As String
Dim Rst As DAO.Recordset
'Borro los datos de la Tabla Temporal
StrSQL = "DELETE * FROM TblValControles;"
CurrentDb.Execute StrSQL, dbFailOnError
'Abro un Recordset sobre la Tabla Recién borrada
StrSQL = ""
StrSQL = "SELECT * FROM TblValControles;"
Set Rst = CurrentDb.OpenRecordset(StrSQL, dbOpenDynaset)
'Recorro los Controles,para pasar el Nombre y el Valor que tiene a la Tabla temporal
For Each Ctrl In Me.Controls
        If Ctrl.ControlType = acTextBox Or Ctrl.ControlType = acComboBox Then
                Rst.AddNew
                        Rst!NombControl = Ctrl.Name
                        Rst!ContenidoControl = Ctrl.Value
                Rst.Update
        End If
Next Ctrl
Rst.Close
Set Rst = Nothing
StrSQL = ""
'Ahora  recorro de nuevo la Colección de Controles, para pintar de color los Controles repetidos
For Each Ctrl In Me.Controls
        If Ctrl.ControlType = acTextBox Or Ctrl.ControlType = acComboBox Then
                If DCount("*", "TblValControles", "ContenidoControl = '" & Ctrl.Value & "'") > 1 Then
                        Ctrl.BackColor = RGB(255, 0, 0)
                End If                
        End If
Next Ctrl
End Sub

Si todo va bien deberías  ver los repetidos en color rojo. Un saludo >> Jacinto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas