Aviso de Duplicidad de dato en formulario access

Tengo una tabla (Servicios) donde ingreso datos a través de un formulario, en donde ingreso un número de boleta (Boleta), la cual puede ser registrada varias veces en diferentes fechas dentro de (servicios) pues se va alimentando otro tipo de información.

Como las boletas son tantas y no llevan un orden especifico, necesito que en el momento que ya esté registrada una boleta dentro de (servicios) me tire un mensaje que esta boleta ya fue ingresada; esto me ayudará a identificar otro campo que depende de esta condición.

1 respuesta

Respuesta
1

Puedes usar algo así: >> Supongo que el Campo Boleta es de tipo Texto

Private Sub NumTarjeta_BeforeUpdate(Cancel As Integer)
On Error GoTo NumTarjeta_BeforeUpdate_Err

If (Eval("DLookUp(""[NumTarjeta]"",""[Clientes]"",""[NumTarjeta] = Form.[NumTarjeta] "") Is Not Null")) Then
'Si el valor de NumTarjeta no es único, muestra un mensaje.
Beep
MsgBox "El Numero de Tarjeta que has introducido ya existe." & vbCrLf & "Introduce uno que sea Unico.", vbCritical, "NUMERO DE TARJETA DUPLICADO"
IntentosNumTarjeta = IntentosNumTarjeta + 1

Call CuentaIntentos ' Para permitir solo tres Intentos
'Vuelve al control NumTarjeta.
DoCmd.CancelEvent
End If

NumTarjeta_BeforeUpdate_Exit:
Exit Sub
NumTarjeta_BeforeUpdate_Err:
MsgBox Error$
Resume NumTarjeta_BeforeUpdate_Exit
End Sub

y la Función CuentaIntentos

Function CuentaIntentos()

If IntentosNumTarjeta = 3 Then
MsgBox "Llevas tres Intentos sin exito." & vbCrLf & "El Formulario se cerrará", vbCritical, "MUCHOS INTENTOS"
DoCmd.Close acForm, "Clientes"
End If
End Function

No te olvides de declarar la variable IntentosNumTarjeta: Hazlo a Nivel de Módulo, no de Procedimiento.

Cambia los Nombres que tu necesites teniendo en cuenta que:

Tarjeta = Boleta

Tabla Clientes sería Servicios por lo que veo.

Dime so te fué bien.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas