Actualización de un campo
Publicado por heaj (33 intervenciones) el 23/06/2008 17:06:45
Explico mi problema.
Tengo una tabla llamada "Profesores", e incorpora varios campos, entre ellos los campos FECHADEINGRESO, SUSPENDIDO y FECHADESUSPENSION. En un formulario que nombré "Alta de Profesor" ingreso los datos personales del profesor y de los campos mencionados anteriormente solo ingreso el de FECHADEINGRESO. En una consulta que nombré "Profesores Todo" calculo automaticamente la antiguedad y la almaceno en el campo "ANTIGUEDAD" de esta consulta.
En otro formulario que nombré "Editar Profesor" coloque una casilla de verificación (la cual nombré "EditSuspendido") para saber cuando está suspendido el profesor.
Si se activa la casilla de "EditSuspendido" esto activa un campo llamado "EditFechadeSuspension" y entonces puedo ingresar la fecha en la cual fue suspendido el profesor. Esto modifica la antigüedad del mismo. Cuando presiono el botón "Guardar" en mi formulario se lleva a cabo una consulta de actualización para la tabla "Profesores" en donde los campos SUSPENDIDO (Tipo Si/No) y FECHADESUSPENSION se actualizan.
El problema es el siguiente. En la consulta "Profesores Todo" la antigüedad se calcula de la siguiente manera: "= (Date() - CVDate[FECHADEINGRESO]) / 365" para que me muestre la antigüedad en años. Si pueden observar en este cálculo no aparece FECHADESUSPENSION para el caso en el cual el profesor fue suspendido.
Lo que quisiera hacer es lo siguiente: Que en la consulta "Profesores Todo" y en el campo ANTIGUEDAD pudiera poner un condicionante que me permitiera al abriir la consulta verificar si el profesor este suspendido, si lo esta, entonces la antigüedad se calcularía de la siguiente manera: "=(CVDate[FECHADESSPENSION] - CVDate[FECHADEINGRESO])/365". Esto congelaría la antigüedad cuando el profesor ha sido suspendido.
Una opción fue agregar directamente el campo ANTIGUEDAD a la tabla "Profesores" y hacer una consulta de actualización día con día para actualizar el campo y tener la antiguedad correcta, pero la verdad no me agrada mucho esta idea.
Espero puedan ayudarme proponiendome un camino más corto. Saludos!!!
Tengo una tabla llamada "Profesores", e incorpora varios campos, entre ellos los campos FECHADEINGRESO, SUSPENDIDO y FECHADESUSPENSION. En un formulario que nombré "Alta de Profesor" ingreso los datos personales del profesor y de los campos mencionados anteriormente solo ingreso el de FECHADEINGRESO. En una consulta que nombré "Profesores Todo" calculo automaticamente la antiguedad y la almaceno en el campo "ANTIGUEDAD" de esta consulta.
En otro formulario que nombré "Editar Profesor" coloque una casilla de verificación (la cual nombré "EditSuspendido") para saber cuando está suspendido el profesor.
Si se activa la casilla de "EditSuspendido" esto activa un campo llamado "EditFechadeSuspension" y entonces puedo ingresar la fecha en la cual fue suspendido el profesor. Esto modifica la antigüedad del mismo. Cuando presiono el botón "Guardar" en mi formulario se lleva a cabo una consulta de actualización para la tabla "Profesores" en donde los campos SUSPENDIDO (Tipo Si/No) y FECHADESUSPENSION se actualizan.
El problema es el siguiente. En la consulta "Profesores Todo" la antigüedad se calcula de la siguiente manera: "= (Date() - CVDate[FECHADEINGRESO]) / 365" para que me muestre la antigüedad en años. Si pueden observar en este cálculo no aparece FECHADESUSPENSION para el caso en el cual el profesor fue suspendido.
Lo que quisiera hacer es lo siguiente: Que en la consulta "Profesores Todo" y en el campo ANTIGUEDAD pudiera poner un condicionante que me permitiera al abriir la consulta verificar si el profesor este suspendido, si lo esta, entonces la antigüedad se calcularía de la siguiente manera: "=(CVDate[FECHADESSPENSION] - CVDate[FECHADEINGRESO])/365". Esto congelaría la antigüedad cuando el profesor ha sido suspendido.
Una opción fue agregar directamente el campo ANTIGUEDAD a la tabla "Profesores" y hacer una consulta de actualización día con día para actualizar el campo y tener la antiguedad correcta, pero la verdad no me agrada mucho esta idea.
Espero puedan ayudarme proponiendome un camino más corto. Saludos!!!
Valora esta pregunta
0