Validar documentos de identidad ecuador en visual basic access

Soy novato en esto de la programación, he conseguido el código pero no lo puedo implementar, es el siguiente:

http://1drv.ms/1oNTdCy (no lo pongo directamente porque es muy largo)

  1. No se si tengo que ponerlo en un modulo de clase o sólo en un módulo para poder usarlo en dos formularios.
  2. Tengo problemas al querer ponerlo en un evento (he elegido BeforeUpdate) del formulario de access ya que me confundo todavía al establecer las variables.

1 respuesta

Respuesta
1

Se me ocurre modificar el código para que en lugar de que te diga si está bien o no, lo que haga sea devolverte el valor correcto.

Para el usuario es mucho más práctico, ya que así se evita un mensaje de error.

1. Si pretendes usarlo en más de un form ponlo en un módulo que no sea de clase. Cambia el Public Sub de la primera linea por Public Function. Si quieres que intentemos modificarlo para que devuelva la letra correcta, dímelo y me repasaré el código para ver como lo hacemos.

2. En cuanto al evento, BeforeUpdate significa antes de actualizar. No puedes hacerlo en ese evento, si aún no has actualizado el valor del campo no sabes lo que vale. Tiene que ser AfterUpdate, después de actualizar.

Muchas gracias Tomas, la respuesta está acertada pero te voy a explicar mejor en cuanto al punto 2.

Tengo u formulario en que se ingresan los datos de los clientes, hay un campo que se llama NoDocumento en donde se ingresa el número de identificación. Lo que necesito es que valide el número ingresado y no permita continuar hasta que se coloque el correcto. Por el momento tengo que revisar primero los números en una tabla de excel para saber los que están correctos y los que no los envío a revisar, el asunto es hacerlo desde access. Gracias por ayudar.

No le veo ningún problema.

Lo único que haría yo es:

En diseño, deja todos los campos que necesitan que el documento esté validado a Habilitado: No, de este modo, aunque se entre el NoDocumento, si está mal, no se puede continuar.

Haz que se habiliten los controles cuando esté comprobado que NoDocumento esté bien. Me explicaré:

Independientemente de como lo compruebes, es decir, de si el programa te da la letra o de si te dice S o N, o verdadero o falso, lo más práctico es que sea mediante una función. La comprobación se hace después de actualizar (AfterUpdate). Si la comprobación es positiva, es decir, si está bien, sólo hay que habilitar el resto de controles: NombreControl.Enabled = True

Gracias, lo voy a revisar, luego te comento.

Si no es mucha molestia me podrías ayudar  con el ejemplo completo?  No he podido hacerlo con código y al insertar una macro en access 2013 me sale un mensaje de error.

El modulo se llama ValidaDocumento y es una Public Function.

No uso mucho las macros, pero creo que tienes que poner un signo = delante, y deberías pasar como parámetro alguna información.

De todos modos, yo lo que haría es, en Después de actualizar, no invocar una macro, sino ejecutar el código en un procedimiento de evento.

¿Ya has decidido cómo hacerlo?. Es decir, tu función ValidaDocumento que responde, con el valor correcto, ¿o con S o N según si es o no correcto?

En verdad el asunto es que he estado un par de años sin programar y estoy un poco oxidado. Estoy revisando mis cursos y mis notas para hacer remember, me pido que me esperes hasta la semana que viene para volver a retomar mi proyecto.

Yo no tengo prisa.

A tu ritmo.

Ya entiendo donde está el problema y en verdad es algo tonto, tengo problemas al intentar trabajar con objetos en access, el asunto es que que el campo a validar es NoDocumento y no puedo poner el procedimiento o hacer el llamado dentro del evento "Después de actualizar" (invocando el procedimiento desde el formulario Clientes, dando clic en los tres puntitos, Generador de código). Me quedo, no estoy seguro que poner entre los sub.

Estoy instruyéndome en un curso en Internet pero quisiera de favor si me das una mano con el ejemplo completo para tener algo practico que estudiar y poder avanzar en mi proyecto

Gracias.

Si te parece, podrías cerrar la pregunta y abrirla de nuevo más adelante.

Si quieres me la puedes dirigir a mí directamente.

El sistema me está preguntando que porque no la contesto, parece como si no quisiera contestar.

La pregunta no admite más respuestas

Más respuestas relacionadas