Access - Como evito duplicar un dato en un campo

 
Vista:

Como evito duplicar un dato en un campo

Publicado por Jose (10 intervenciones) el 31/03/2005 06:47:51
Tengo una tabla en la que ingreso varios datos, el primero es un Nro. que no se puede duplicar y no es autonumerico, esta indesado y sin dup;icados, pero access ve avisa al final del ingreso de todos los datos de los campos que hay un dato duplicado, pero quisiera saber si hay alguna forma de saberlo al ingresar ese dato en el primer campo

Muchas Gracias anticipadamente

Jose desde Argentina
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Validación de duplicados en campo al ingresar datos

Publicado por Alejandro (4142 intervenciones) el 30/05/2023 18:58:49
Hola, José.

Si deseas verificar si un dato ingresado en el primer campo de tu tabla ya existe y evitar el mensaje de duplicado al final del ingreso de todos los datos, puedes utilizar el evento "Before Update" del formulario para realizar la validación.

Aquí tienes los pasos para lograrlo:

1. Abre el formulario en modo diseño en Access.

2. Haz clic derecho sobre el primer campo y selecciona "Propiedades" para abrir la ventana de propiedades del campo.

3. Ve a la pestaña "Eventos" en la ventana de propiedades.

4. Busca el evento "Before Update" y haz clic en el botón de los tres puntos (...) para abrir el editor de código.

5. En el editor de código, puedes agregar el siguiente código para verificar si el valor ingresado en el primer campo ya existe en la tabla:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Private Sub NombreDelCampo_BeforeUpdate(Cancel As Integer)
    Dim strSQL As String
    Dim rs As DAO.Recordset
 
    ' Obtener el valor ingresado en el primer campo
    Dim valor As String
    valor = Me.NombreDelCampo.Value
 
    ' Construir la consulta SQL para verificar la existencia del valor en la tabla
    strSQL = "SELECT COUNT(*) FROM NombreDeLaTabla WHERE NombreDelCampo = '" & valor & "'"
 
    ' Ejecutar la consulta
    Set rs = CurrentDb.OpenRecordset(strSQL)
 
    ' Verificar si el valor ya existe en la tabla
    If rs.Fields(0).Value > 0 Then
        ' Mostrar mensaje de duplicado
        MsgBox "El valor ingresado ya existe en la tabla. Por favor, ingresa otro valor.", vbExclamation, "Duplicado"
        ' Cancelar la actualización del registro
        Cancel = True
    End If
 
    rs.Close
    Set rs = Nothing
End Sub

Asegúrate de reemplazar "NombreDelCampo" con el nombre del campo en tu formulario y "NombreDeLaTabla" con el nombre de tu tabla.

Con este código, al intentar actualizar el primer campo del formulario, se verificará si el valor ingresado ya existe en la tabla y se mostrará un mensaje de duplicado si es necesario. Si se encuentra un duplicado, la actualización del registro se cancelará.

Espero que esta solución te sea útil.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar