** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Problema al actualizar cuadro combinado
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoProblema al actualizar cuadro combinado

 Responder Responder
Autor
Mensaje
damian_colomb Ver desplegable
Habitual
Habitual


Unido: 08/Febrero/2021
Localización: Argentina
Estado: Sin conexión
Puntos: 85
Enlace directo a este mensaje Tema: Problema al actualizar cuadro combinado
    Enviado: 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

  




Arriba
damian_colomb Ver desplegable
Habitual
Habitual


Unido: 08/Febrero/2021
Localización: Argentina
Estado: Sin conexión
Puntos: 85
Enlace directo a este mensaje Enviado: 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
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable