Necesitaría saber como guardar el campo calculado EDAD (el cual se calcula a partir de la fecha de nacimiento y la fecha usando DIffecha) en la tabla desde la que proviene el formulario. Por otra parte, que me comenten si hay una forma más precisa de calcular la edad, ya que a veces esta tiene errores.
1 Respuesta
Respuesta de betomejia
1
1
betomejia, Manejo de base de datos Microsoft Access 2007 y 2010
Supongo que a través de la función DifFecha encontrarás errores en el cálcuo de la edad. Esto es porque si el intervalo lo pones en términos de año, éste "redondeará" al más próximo. *** Mejorar él cálculo Utilizando las funciones ya conocidas para el cálculo de edad SiInm y Format condicionarás este hecho resultando la edad adecuada. Para mejorar tu cálculo puedes hacer lo siguiente: 1. Suponiendo que la fecha de nacimiento se almacena en el campo [FNac] 2. En una consulta en modo diseño en un nuevo campo escribes: Edad: DifFecha("aaaa",[FNac],Ahora())-SiInm(Format(Ahora(),"mmdd")<Format([FNac],"mmdd"),1,0) *** Guardar el dato del campo calculado 1. En tu tabla tienes un campo que se llama [Edad] (Tipo de datos: Número) 2. En tu formulario, basado en tu tabla, debes tener el campo [Edad] 3. Inserta un nuevo control tipo cuadro te texto que se llame txEdad 4. En propiedades del formulario, clic en la ficha "Eventos" y luego en "Al activar registro" clic en los ters puntitos al fial y elijes el Generador de Código. 5. Escribes esto: Me.Edad =txEdad Debe verse así: Private Sub Form_Current() Me.Edad = txEdad End Sub 6. Listo! El cáluclo se guardará en tu tabla en el campo [Edad]. Toma en cuenta que a través del tiempo, la edad va cambiando (dato variable) por lo que el que se almacene la edad puede ser ambiguo si no se actualiza a través del formulario. Me cuentas cómo resultó.
¿Te funcionó el ejemplo?
Hola, no he tenido aun tiempo deprobarlo. Seguramente el fin de semana me dedicaré a esto. La explicación es muy clara. Luego te cuento. Muchas gracias por tu respuesta
Hola, estoy trabajando con tu respuesta, como soy novato en esto de Access tengo un par de dudas, quizás muy básicas, dignas de principiante 1) ¿Dónde coloco la expresión que me dices en la consulta? ¿En "criterios"? 2) Como puedo hacer para actualizar automáticamente, cada vez que abra el formulario o la tabla, ¿el campo "edad"? Gracias
La expresión se crea en la consulta en vista diseño en la primera fila que dice "Campo". Lo ingresas tal cual te lo envíe: Edad: DifFecha("aaaa",[FNac],Ahora())-SiInm(Format(Ahora(),"mmdd")<Format([FNac],"mmdd"),1,0) En esta consulta deben de estar el campo presente de la Fecha de nacimiento. Cambia FNac por el nombre de tu campo. Para actualizar puede ser desde una consulta o formulario. La segunda opción que te envié en el primer mensaje es para ponerla en un formulario basado en la consulta que te pido crees. Crea primero la consulta y me dices cómo te fue.
Veto, tan clara tu explicación como útil tu respuesta. Muchas gracias, y ya te molestaré con nuevas consultas a medida que vaya avanzando