Escribir en un campo independiente

Llevo no sé cuánto tiempo intentando terminar una base de datos para una amiga abogada, pero lo que me tiene atascada son los vencimientos. Ahora que he encontrado un sencillo ejemplo (espero que me sirva), necesito adaptarla a mi base, pero no sé hacer lo siguiente.
En mi histórico (donde estarán los vencimientos), tengo el campo Fecha de notificación, que por defecto me pone la fecha actual, y si quisiera cambiarla, puedo hacerlo manualmente con la fecha que me plazca.
Esto mismo quiero hacer con el campo DiasPreaviso. En el campo DiasVencimiento, indico un número, y en DiasPreaviso quiero que me indica la mitad que he puesto en DiasVencimiento. Es decir: en DiasVencimiento he insertado el número 10 (lo que significa 10 días para un vencimiento), y en DiasPreaviso, debería marcarse sólo un 5 (la mitad de 10).
Hasta aquí bien, eso lo consigo con un campo independiente mediante una división (=[DiasVencimiento]/2)
Pero aquí vienen 2 cuestiones:
* En un muy bajo porcentaje, necesitaré escribir a mano esos días de preaviso y que además conste en la tabla del histórico.
* Quisiera que al poner 15 días de vencimiento, los días de preaviso no sea 7 ó 7,5, sino 8. Es decir, si el resultado de dividir los días de vencimiento entre 2 me da un número con decimales, que lo redondee y sume por encima. Si los días de vencimiento fueran 35, entonces que sean 18 días de preaviso (no hay problema si son 12 días de vencimiento, porque con los números pares no ocurre eso).

1 respuesta

Respuesta
1
Ok considero que el problema se soluciona si pones lo siguiente en tu expresión
=Redondear([DiasVencimiento]/2)
En primer lugar muchísimas gracias por la celeridad con la que has contestado.
He de decirte que ha funcionado a la perfección. Pero ten en cuenta que dos son mis dudas (con una ya me has ayudado). La otra es precisamente la que encabeza mi pregunta ;)
Un favor me podrías explicar mejor la otra pregunta por favor, ¿si entendí bien quieres escribir en ese mismo campo calculado donde se encuentra la expresión?
Hola y gracias de nuevo por tomarte la molestia.
Lo que necesito es lo siguiente.
Tengo un campo calculado (campo=preaviso) resultado de dividir otro campo (campo=diasvencimiento) entre 2.
Pero no siempre podré tomar como valor el resultado en el campo preaviso, sino que manualmente tendría que indicar mi propio valor (ignorando el que me propone el campo preaviso). Lo que no sé es si esto puedo hacerlo en el mismo campo (preaviso) o debo crear un campo nuevo, sobre todo para los informes (si no me sirve esto, cógeme el dato de este otro).
No sé cómo plantearlo.
Ok, ya entiendo mira lo que te recomiendo que el campo preaviso no sea calculado mediante expresión sino que los cálculos los realices mediante código, ya que los campos calculados por expresiones no se pueden editar manualmente.
Para ello tienes que ir a Propiedades -> Eventos -> Después de Actualizar -> Botón [...] -> Generador de Código -> te aparecerá la ventana de Visual Basic.
Ahora bien
En el campo de Vencimiento tendrás que poner el siguiente código:
Private Sub DiasVencimiento_AfterUpdate()
Preaviso = Round(DiasVencimiento / 2)
End Sub
Dime si te sirve Saludos
uy! Casi perfecto, hasta que al comprobar, vi que, en el formulario continuo (donde aparecen ambos campos), se repetía el mismo valor.
Es decir, en el registro 1 indicaba, p.e., 23 días de vencimiento, y en preaviso, me indicaba que serían 12 días (y además, lo puedo modificar!)
En el segundo registro, esta vez, son 10 días de vencimiento, y en preaviso, como era de esperar, me indicó que serían 5 días de antelación. Pero es que en el registro 1, en el campo preaviso me ha puesto 5 también, borrando 12!
No entiendo por qué, si es independiente el uno del otro, a pesar de que es un formulario continuo, se supone que son registros con su propio e intependiente autonumérico.
Ok lo que sucede es que debes relaciar el campo preaviso con alguno de la tabla, no lo puedes dejar independiente en el formulario, porque de los contrario el código reconoce a todos los preavisos como tal, por ello crea en tu tabla un campo llamado preaviso y en formulario relacionalo con el verás que con eso ahora si te respectará en dato de cada uno de los registros.
Qué vergüenza! Lo tenía ya creado en la tabla y con las prisas no le indiqué el origen, sino que me quedé con el cuadro de texto independiente.
Mil gracias! Funciona a la perfección! Estuve buscando la solución en internet y no hubo forma, a veces se hace complicado saber cómo buscar una respuesta que resulta estar ahí.
Muchas gracias nuevamente.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas