Validar un campo código en un registro

Mi dilema esta en que he creado una tabla en access con 5 campos ej:código, nombre, teléfono, dirección y sexo.
Pero requiero que cuando digite en el campo código si este ya existe saque el mensaje inmediatamente y no esperar a diligenciar todos los campos para que me salga una ventana informándome que el campo llave esta duplicado.
Agradeciendo su pronta respuesta ya que es un base de datos para la empresa que yo trabajo
Respuesta
Esto lo puedes conseguir con lo siguiente:
En el evento Después de actualizar o al perder el enfoque tienes que escribir lo siguiente:
DoCmd. DoMenuItem acFormBar, acRecordsMenu, acSaveRecord,, acMenuVer70
Tal cual esta aquí. Te permira comprobar que el registro es correcto, porque intentara guardarlo automáticamente.
El problema es que tengas más de un campo obligatorio, entonces tendrás que colocarlo en el ultimo, por que si no el error es continuo. No se si me explico correctamente.
Venga un saludo, y si necesitas algo más, ya sabes

4 respuestas más de otros expertos

Respuesta
1
Aquí te pego una respuesta mía igual, sustituye sus "mayusculas" por tu "código", saludos
---
Tengo mi base de datos llamada Alfanumérico que contiene Formulario LETRAS tengo solo dos campos (Mayúsculas y Minúsculas), y como llave principal tengo Mayúsculas, la captura la quiero al al introducir un dato repetido en el campo Mayúsculas me diga que ya existe, esto que lo haga antes de terminar de capturar todo el formulario
---
Re: Sin repetir datos
En diseño del formulario letras seleccionas el control mayúsculas y con el botón derecho pides "generar evento", "generador de código"
access escribe
Private Sub Mayusculas_BeforeUpdate (Cancel As Integer)
End Sub
en medio pegas esto
If DCount("*", "letras", "mayusculas='" & Me.Mayusculas & "'") > 0 Then
MsgBox "Ya ha introducido" & Me.Mayusculas
Cancel = True
End If
End Sub
Te doy mil gracias y eres un excelente de todos los concejos el tuyo fue el efectivo y preciso
Gracias
Jorge
Si código acceso es numero, sobran la comillas simples que rodean las comillas dobles
If DCount("*", "f_T_responsables_llamadas", "CODIGOACCESO='" & Me.CODIGOACCESO & "'") > 0 Then
Respuesta
1
Estas equivocado lo puedes hacer en cualquier campo tenga o no tenga llave
Bueno
Donde tienes el código el text box cambialo por un cuadro combinado
Creo que si sabes utilizar los cuadros combinados bueno.
En el qry pones el código
Al en el evento al después de actuañlizar pones esto
If Len(Me.cuadrocombinado.Column(0) = False) Then
MsgBox "codigo EXISTENTE", vbInformation, "titulo"
Cancel = -1
Else
'este actualiza el cuadro combinado
Me.Cuadrocombinado.Requery
End If
Este código no te dejara duplicar ya que existe en un cuadro de lista y si te interesa para despegar el cuadro de lista automático al escribir pon esto en el evento al entrar
Private Sub cuadrocombinado_Change()
Me.cuadrocombinado.Dropdown
End Sub
Ojo si es un catálogo en el qry selecciona la misma tabla del catálogo y el campo código para que el cuadro sepa que es del catálogo
Hora si amigo
Disculpa si te ofendí en algo, y de prepotente no tengo nada, pues la solución que me diste inicialmente es algo que se hace intuitivamente.
Te reitero mis disculpas
Ok, eso que me recomendás se hace por defecto en todos los campos llaves analiza nuevamente la pregunta.
Yo requiero que apenas digite el código el sistema me avise que ese codig ya existe ya sea utilizando una regla de validación
Te agradezco una respuesta más completa
Bueno amigo sino quieres que se duplique en la tabla bolteala en vista diseño y selecciona el campo que quieres que no se duplique a abajo en las propiedades selecciona en don de dice indexado selecciona no duplicado y nunca te duplicara
Respuesta
1
Te tengo una solución rápida y concisa.
Lee la solución en la siguiente URL: http://www.microsoft-accesssolutions.co.uk/duplicates.htm
A mí me fue útil.
Respuesta
1
¿No te vendría bien que ese código fuera, por ejemplo, un autonumérico? Así, te evitas dos cosas: tener que escribirlo, y a la vez, que esté duplicado.
Y el campo que actualmente utilizas como código lo podrías emplear como un campo más...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas