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