Formulación en Formularios de Access

Estoy creando una base de datos en access pero me han surgido unos inconvenientes por que yo quiero que en el formulario llamado "datos personal" que estoy ingresando los datos del personal, ingresar la fecha de nacimiento de la persona y que automáticamente me muestre la edad y me la registre en el campo de edad de la tabla de datos llamada "datos personal", de igual forma al momento de que una persona se retire y yo le coloque en el campo "fecha de retiro" la fecha, el me vote en el campo "Estado Actual" si esta activo o retirado.

1 respuesta

Respuesta
1
Primer tema: edad.
No es una buena costumbre guardar un campo calculado en las tablas. Máxime cuando lo puedes calcular en cualquier momento. Imaginate esta situación. Hoy me das de alta a mi en la tabla y pones mi fecha de nacimiento. Mediante una fórmula como esta en un cuadro de texto:
=(Format(Fecha();"aaaammdd")-Format([FechaNacimiento];"aaaammdd"))\10000
Obtienes la edad de una persona. Dado que mi fecha de nacimiento es 16/09/1969, el programa te calcula 39 años. Si guardas ese dato (los años) y mañana miras la ficha, te dirá 39, cuando ya habré cumplido 40.
Por eso te digo que lo mejor es no guardar nunca un dato que puedes calcular en cualquier momento. Si puedes hacerlo en el formulario, puedes hacerlo en cualquier parte siempre que tengas la fecha de nacimiento.
Segundo tema: estado actual.
Puedes manejar el evento AfterUpdate (Después de actualizar) del campo fecha de retiro para evaluar si tienes una fecha. En caso de tenerla, cambias el estado:
If IsDate(Me![fecha de retiro]) Then
  Me![estado actual] = "Activo"
 Else
  Me![estado actual] = "Retirado"
End If
Para finalizar un consejo: no utilices espacios, guiones u otros caracteres especiales en los nombres de los campos. A la larga sólo te darán problemas. Es mejor utilizar FechaRetiro que fecha de retiro. Se entiende exactamente igual y te ahorra muchos caracteres (los corchetes, por ejemplo) y errores en la generación de SQL's
http://www.mvp-access.com/foro

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas