Access - VALORES DUPLICADOS EN CLAVE PRINCIPAL DEL FORMULARIO

   
Vista:

VALORES DUPLICADOS EN CLAVE PRINCIPAL DEL FORMULARIO

Publicado por VICNETE (7 intervenciones) el 04/02/2014 11:45:59
Buenas y gracias de antemano,

La verdad que llevo buscando mucho por los foros y, aunque he visto consultas similares, aun no he podido resolver mi problemilla. No controlo demasiado en VB, os comento:

Tengo UN FORMULARIO: PERSONAL que hace referencia a una tabla PERSONAL con clave primaria DNI (texto).
El formulario se abre para introducir un nuevo registro desde VB. (DoCmd.GoToRecord , , acNewRec )

Lo que necesito es que si se escribe un DNI que ya existe me muestre todos los campos relacionados en el formulario para poder editarlos (evitando de paso el famoso error 3022) y si por el contrario el DNI no existe me deje crear un nuevo registro.
También me gustaría que estos criterios me los mandara nada más introducir el valor del campo DNI (al perder el foco, al actualizar, ..) para no tener que llegar a introducir todos los campos.

Comentaros que en algún campo del formulario tengo la propiedad Me.Refresh (por si influye en algo).

Ya no se que más hacer , así que os agradecería muchisimo cualquier ayuda
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 Neckkito

VALORES DUPLICADOS EN CLAVE PRINCIPAL DEL FORMULARIO

Publicado por Neckkito (1104 intervenciones) el 04/02/2014 20:47:49
Hola!

Echa un vistazo a este ejemplo. El código está en el evento "Después de actualizar" del campo [DNI]: https://www.mediafire.com/?ud2kr268ilp84ay

Supongo que no tendrás problemas para adaptarlo a tu caso, pues he tratado de respetar los nombres que has dado en tu mensaje.

Saludos,

http://neckkito.siliconproject.com.ar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

VALORES DUPLICADOS EN CLAVE PRINCIPAL DEL FORMULARIO

Publicado por VICENTE (7 intervenciones) el 05/02/2014 20:00:18
Perfectoooooo, es exactamente lo que necesitaba.

Tan solo he incluido una línea para que el foco vaya al siguiente campo del formulario y listo!

Muchas gracias Neckkito!
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

VALORES DUPLICADOS EN CLAVE PRINCIPAL DEL FORMULARIO

Publicado por VICENTE (7 intervenciones) el 22/02/2014 20:31:05
Buenas de nuevo,

Ya estoy terminando mi Base de Datos, al menos eso espero :).

La consulta que hice me funcionaba perfectamente pero me ha surgido un nuevo problema al incluir un menú de navegación, os cuento:

Como comenté tengo un formulario (PERSONAL) que tiene un campo DNI. Si al introducir un valor en DNI ya existe en la tabla PERSONAL me avisa y se posiciona en el registro para editarlo, este es mi código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Private Sub DNI_AfterUpdate()
        'Declaramos las variables
    Dim miDNI As String
    Dim existe As Variant
        'Cogemos el valor del DNI introducido
    miDNI = Nz(Me.DNI.Value, "")
        'Si no hay valor salimos
    If miDNI = "" Then Exit Sub
        'Comprobamos si existe
    existe = DLookup("DNI", "Personal", "DNI='" & miDNI & "'")
        'Si existe no devuelve un null es que ya existe el DNI
    If Not IsNull(existe) Then
            'Avisamos y nos situamos en el registro, deshaciendo los cambios
        Me.Undo
        MsgBox "El DNI introducido ya existe", vbExclamation, "AVISO"
        DoCmd.OpenForm "PERSONAL", , , "[DNI]='" & miDNI & "'"
        Nombre.SetFocus
            End If
End Sub

Claro ahora al incorporar un nuevo formulario de navegación no me muestra los datos en dicho formulario si no que directamente me abre el formulario PERSONAL.
Me gustaría que realizara la misma función que hasta ahora pero trabajando siempre desde el Formulario de Navegación.
He intentado cambiar la línea: DoCmd.OpenForm "PERSONAL", , , "[DNI]='" & miDNI & "'" por la del nombre del formulario de navegación pero como me esperaba no funciona.

Muchas gracias de nuevo
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