Informe con antigüedad access 2007

Tengo una consulta tengo que realizar un informe en el cual tendría que mostrar la antigüedad de los empleados, tengo ya un formulario con módulos en el cual calcular la antigüedad de cada uno de los empleados con la fecha de ingreso. Lo que deseo es poder tener esa misma información en un informe si me podría ayudar a realizar esto.

1 Respuesta

Respuesta
1

Con los datos que das, poco puedo decirte...

Si en tu formulario la antigüedad la muestras en un campo calculado (no se guarda en la tabla), en tu informe tienes que hacerlo igual.

Si el valor de la antigüedad se guarda en la tabla, construye el informe directamente de la tabla.

Bueno, la antigüedad del formulario no la tengo en una tabla es solo un campo calculado con VB modulo, eso mismo lo quiero pasar a el informe .como podría hacerlo?

No te hace falta "pasarlo", en tu informe, haz lo mismo que hiciste en el formulario, que imagino que sería poner un cuadro de texto, y asignarle el valor de una función, que tendrás en tu módulo vb.

Y eso lo que no me esta funcionando, cree un informe sin el asistente para informes, y le agrego el modulo el que asigne por el calculo de antigüedad en "EVENTOS", AL ENTRAR: y ahí le agregue el codigo y no pasa nada

Prueba poniendo el código en el evento Al dar formato. Si así no te va, ponme el código aquí para que lo vea y explorar otras opciones.

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

Vale, lo más sencillo es que hagas esto:

1º/ Crea una consulta sobre la tabla en cuestión, cogiendo los campos que indicas arriba (Nº Codigo_Empleado Apellido Nombre Cargo Sección Sueldo )

2º/ En una columna nueva en la vista diseño de la consulta, le añades, en la fila titulo lo siguiente:

Antigüedad: fncAntiguedad([FechaAlta])

Suponiendo que tu campo se llama FechaAlta (si no es así, cámbialo por el tuyo)

3º/ Crea el informe sobes esa consulta, o si ya lo tienes creado, cámbiale el origen de datos del mismo a esta consulta. En este caso, además, tendrás que asignarle al cuadro de texto antigüedad como origen del control el nuevo campo Antigüedad de la consulta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas