Cita:
Iniciado por Heimish2000 Como te han dicho, el error que te da es porque entra en una serie de llamadas recursivas infinitas.
Para el otro problema, ¿Por qué no usas la función DateDiff? ¿Por qué recalculas los años de servicio cuando se cambian los años de servicio? ¿No habría que calcularlos cuando se cambie la fecha de hoy o la fecha de entrada a la empresa?
Bueno, perdón por contestar tan tarde. Primero contestare a Heimish.
Bien, en cuanto a las preguntas que me haces, no utilizo DateDiff porque no tiene en cuenta los dias y los meses en las fechas. Para fechas menores a un año, siempre devuelve 1. Y eso es precisamente lo que pretendo evitar.
Ej:
Fecha1= #01/12/2002#
Fecha2= #04/02/2003#
La diferencia en años es 0, ya que la diferencia son realmente 3 días y dos meses. Sin embargo poniendo
Diferencia: DifFecha("yyyy";[fecha1];[fecha2]) sale 1.
Es por eso por lo que intento recalcular los años de trabajo de los operarios, para cuando ocurra un caso como el anterior el valor que me devuelva sea 0. Evidentemente con el Evento Change() no me ha ido bien, pero pense en él porque quería que al pasar de un operario al siguiente, mediante un control data, me recalculara los años trabajados restándole 1 cuando la diferencia entre las fechas no fueran exactamente de un año.
Espero me hayas comprendido bien. De todas formas muchas gracias por tu aportación!