Access - Detectar campo repetido

   
Vista:

Detectar campo repetido

Publicado por Angel38 (84 intervenciones) el 16/03/2009 17:37:57
Hola a todos, a ver si podeis ayudarme. Ya hice esta misma pregunta en la Web "Foro de Access y VBA", pero la contestación aunque fue rápida tambien fue un tanto irónica y de poca ayuda.
Pongo este código enel primer campo de un formulario para detectar si ya existe el valor y no tener queseguir metiendo datos:

Private Sub DATO1_Exit(Cancel As Integer)
If DCount("*", "COMP2009", "[NºComp]=" & Me!DATO1 & "") > 0 Then
MsgBox "El valor ya existe", vbCritical, "AVISO"
Me!DATO1 = Null
Cancel = True
End If
End Sub

Pero me sucede que una vez salgo del campo se bloquea el formulario, si quito el código se desbloquea. Quizás interactúa con otra proiedad del form, ya que en la respuesta que medieron en el citado foro, decian que no es suceptible este códigode hacer eso, pero ¿que puede ser lo que no me deja situarlo en mi Base de datos? esas son las sugerencias que busco de vosotros. Gracias.
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

RE:Detectar campo repetido

Publicado por mi menda (1111 intervenciones) el 17/03/2009 11:19:37
Hola:
Prueba con este código:

Private Sub DATO1_Exit(Cancel As Integer)
If DLookup("NºComp", "COMP2009", "[NºComp]=" & DATO1) Then
MsgBox "El valor ya existe", vbCritical, "AVISO"
Me.undo
Cancel = True
End If
End Sub

Supongo que NºCamp es un campo de tipo númerico.
Puede ser alguna cosa rara de nombre de campo, NºCamp lo renombraría como NumCamp, por sí las moscas.
A ver sí hay suerte.

Un saludo
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

RE:Detectar campo repetido

Publicado por Angel38 (84 intervenciones) el 17/03/2009 14:36:06
Hola Mi menda; gracias por el interés, ya renombré y, sí, esde tipo número, pero sigue sin funcionar. Ahora me sale el MsgBox, al menos, pero sale nada más abrir el formulario, no me dejaentrar a ningun control, sale el MsgBox. ¿Podrías aportar alguna otra sugerencia sobre lo que ocurre? Gracias
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

RE:Detectar campo repetido

Publicado por Angel38 (84 intervenciones) el 17/03/2009 14:52:40
Ok, Gracias de nuevo, quizás me precipité al contestar antes. Ahora me funciona correctamente, simplemente le cambié el evento, lo situé en "antes de actualizar". Mil 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

RE:Detectar campo repetido

Publicado por mi menda (1111 intervenciones) el 17/03/2009 18:52:42
Hola:
Ahora caigo, se te "bloqueaba" porque cuando utilizas cancel = true en el evento al salir, no te deja salir del control hasta que no introduzcas un valor, en este caso, que no cumpla con la condición. Por eso este evento se suele utilizar para forzar a que el usuario no pueda salir del campo hasta que introduzca un valor correcto.

Un saludo
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