Access - Editar Mensajes error al anexar datos con una consulta

   
Vista:

Editar Mensajes error al anexar datos con una consulta

Publicado por Antonio (13 intervenciones) el 13/09/2017 15:07:44
Hola,
Tengo un formulario en una base de datos en el que voy anexando nuevos registros con una consulta. Entre los campos que hay en la tabla en la que se guardan los datos, hay uno que corresponde con el número de operación que no admite duplicados, y cuando la consulta crea un nuevo registro, genera este campo basándose en otro campo que se rellena manualmente, en el que a veces, por error, se teclea un número que ya existe.
Cuando pasa esto, access me muestra el siguiente error:

59b92820dffba_th-Mensaje-error


He buscado el código de error, y en http://www.accessdemo.info/art-listado-errores-access-2003.html encontré que podía ser el 10510

Introduje un evento con el siguiente código:

1
2
3
4
5
6
7
Private Sub Form_Error(DataErr As Integer, Response As Integer)
If DataErr = 10510 Then
MsgBox "Este número ya existe", _
vbInformation, "NUMERO DUPLICADO"
Response = acDataErrContinue
End If
End Sub

Pero no hace nada. De modo que buscando más, encontré en un ejemplo de neckkito el siguiente código:

1
2
3
Private Sub Form_Error(DataErr As Integer, Response As Integer)
MsgBox DataErr
End Sub

Pero no consigo que me devuelva el número de error, y por tanto no puedo pasar al segundo paso que es el de personalizar este mensaje.

¿Podríais ayudarme?
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

Editar Mensajes error al anexar datos con una consulta

Publicado por Antonio (13 intervenciones) el 13/09/2017 17:08:12
Mensaje-error
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

Editar Mensajes error al anexar datos con una consulta

Publicado por Anonimo (942 intervenciones) el 13/09/2017 18:48:10
Normalmente si se desea 'saber' si un determinado dato existe en un conjunto, se suelen utilizar búsquedas o la alternativa de contarlos.

La función DLookup efectuaría una búsqueda, el resultado devolvería 'el dato buscado' (que ya conocemos y contra el que se puede comparar) o un valor NULL indicador de que no lo localizo.

La alternativa (me gusta un poco mas, pues no devuelve nulos y al final el dato a localizar lo conocemos) consiste en CONTAR (la función DCount) los registros que cumplan la condición (y la condición es que sean iguales al dato a localizar)
.- si devuelve un CERO es que no lo localizo (por lo que se puede considerar que NO EXISTE en ese conjunto)
.- un valor (normalmente el valor '1') que es el numero de coincidencias localizadas (un claro indicador de que SI EXISTE en ese conjunto).

Lo de intentar el tratamiento de errores ... se puede hacer, particularmente es una alternativa que no me gusta pues equivale a ir a salir por la puerta y tropezar con la pared: mensaje de error ==> 1001, 'apunta bien' (y eso ya lo sabes y con un chichón que te lo recuerda).
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

Editar Mensajes error al anexar datos con una consulta

Publicado por Antonio (13 intervenciones) el 13/09/2017 19:41:14
Hola Anónimo,
Recurro a la operativa del tratamiento de errores porque conforme a la operativa de introducción de datos en esta BD, es la mejor opción. Estoy de acuerdo contigo en que es como darse un golpe con la puerta cerrada, pero también es la forma de avisar al que mete datos que pare y revise lo que está haciendo porque va por mal camino.
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

Editar Mensajes error al anexar datos con una consulta

Publicado por Anonimo (942 intervenciones) el 13/09/2017 20:44:39
Es una opción, pero me parece una opción (para mi mas inteligente y menos dolorosa) el 'palpar' antes de avanzar para centrarse en donde queda el hueco.

Sinceramente provocar errores no es una forma de programar seria, solo es aceptable (o lo seria) cuando NO SE PUEDE controlar la toma de datos (o la acción a ejecutar), pero si es la que te agrada ... es tu opción personal.
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
Revisar política de publicidad