Imprimir página | Cerrar ventana

Problema al actualizar cuadro combinado

Impreso de: Foro de Access y VBA
Categoría: Access y VBA
Nombre del foro: Access y VBA
Descripción del foro: Foro de programacion en Access (Con código y sin código)
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=85929
Fecha de impresión: 29/Marzo/2024 a las 10:12


Tema: Problema al actualizar cuadro combinado
Publicado por: damian_colomb
Asunto: Problema al actualizar cuadro combinado
Fecha de publicación: 02/Abril/2021 a las 22:43
Hola!
Tengo una duda, a ver si alguien puede ayudarme. 
Tengo un formulario donde un cuadro de texto llamado edad devuelve la edad calculada según una columna asociada a un cuadro combinado, llamado informe_veda_DNI, es decir que al colocar el valor de DNI del cuadro combinado, calcula la edad en la fecha actual.
Esto lo realice mediante la propiedad column, es decir, en el evento "al cambiar" del cuadro combinado "dni_informe_veda" presenta la expresión Edad.Value = [dni_informe_veda].[Column](6). Donde la columna 6 calcula lo siguiente: Int((Fecha()-[Pacientes]![Fecha de nacimiento])/365,25)

Ahora bien, hasta este momento, esta realizando lo que quiero, cuando coloco el DNI, me calcula la edad en ese momento. El problema radica cuando coloco un documento y después lo borro, por un lado se mantiene en el cuadro de texto "edad" el valor calculado previamente, pero eso no es lo peor, el problema es que como al abrir el formulario se actualizan los registros de la tabla para cargar un nuevo dato, si yo cambio el DNI y después lo borro, me inserta una nueva fila en la tabla y si cierro el formulario esa fila ya está insertada con el valor de la edad
No se si se entiende el problema.

Para abrir el formulario sin contenido en los cuadros de texto, en el evento al abrir se ejecuta el siguiente código:
DoCmd.GoToRecord , , acLast
DoCmd.GoToRecord , , acNext 

Intente usar un condicional, de manera que devuelva la columna edad si el cuadro combinado es un numero y sino que quede vacio, cambiando el evento al cargar de la siguiente manera:

if isnumeric(dni_informe_veda) then
Edad.Value = [dni_informe_veda].[Column](6).
Else
Edad.value = ""

Aclaración: El dni en Argentina es análogo al nif en España

Muchas gracias siempre por su ayuda de siempre
Saludos

  







Respuestas:
Publicado por: damian_colomb
Fecha de publicación: 03/Abril/2021 a las 14:49
Hola!
lo solucione cambiando la forma de insertar los datos en la tabla, cambie la forma automática que trae acces, por  "insert to" en VB, de esta manera le saqué el origen a todos los objetos del formulario y puntualmente al de edad, como origen de datos le puse Edad.Value = [dni_informe_veda].[Column](6). La tabla donde van los datos se actualiza solo al dar el boton que tiene el código con el insert to.
Drop here!

Se puede cerrar
Saludos



Imprimir página | Cerrar ventana