Bueno no me función lo primero, le paso el código :
Option Compare Database'--------------------------------------------------------------------------------------------'Función para calcular la antigüedad de un trabajador en años y meses'--------------------------------------------------------------------------------------------Public Function fncAntiguedad(FechaAlta As Date) As StringDim baño As DoubleDim vMes As DoubleDim vDia As DoubleIf IsNull(FechaAlta) Then fncAntiguedad = "": Exit FunctionIf Month(FechaAlta) > Month(Date) Thenbaño = DateDiff("yyyy", FechaAlta, Date) - 1Elsebaño = DateDiff("yyyy", FechaAlta, Date)End IfIf Day(FechaAlta) > Day(Date) ThenvMes = DateDiff("m", DateAdd("yyyy", baño, FechaAlta), Date) - 1ElsevMes = DateDiff("m", DateAdd("yyyy", baño, FechaAlta), Date)End IfSelect Case bañoCase 0Select Case vMesCase 0vDia = DateDiff("d", FechaAlta, Date)fncAntiguedad = vDia & IIf(vDia = 1, " día", " días")Case 1fncAntiguedad = vMes & " mes"Case ElsefncAntiguedad = vMes & " meses"End SelectCase 1Select Case vMesCase 0fncAntiguedad = baño & " año"Case 1fncAntiguedad = baño & " año y " & vMes & " mes"Case ElsefncAntiguedad = baño & " año y " & vMes & " meses"End SelectCase ElseSelect Case vMesCase 0fncAntiguedad = baño & " años"Case 1fncAntiguedad = baño & " años y " & vMes & " mes"Case ElsefncAntiguedad = baño & " años y " & vMes & " meses"End SelectEnd SelectEnd Function
El diseño de mi informe seria
Nº Codigo_Empleado Apellido Nombre Cargo Sección Sueldo "Antigüedad"
Teniendo una tabla en la cual esta su fecha de ingreso y su antigüedad se calcula de acuerdo con el código de arriba en un formulario