Consulta vb access 2007

Tengo otra consulta. Me esta redondeando todos los datos de los empleados , hay empleados que no alcanzan a tener un año, 11 meses y redondea esta bien pero en la indemnización suma un año mas osea 15*2 = 30 el cual tendría que ser 15*1 con la formula anterior.

como podría cambiar eso? Que solo los que tengas años >=1 y meses >6 , redondee eso

y que los que tengan años <1 y meses >6 redondee solamente a 1 año.

desde ya gracias de nuevo

1 Respuesta

Respuesta
1

Pues si así no te funciona, no se me ocurre ninguna manera:

Me.txtIndemnizacion = 15 *IIF(me.txtAños<1,Me.txtAños,IIF(Month(CampoFecha)<6,Me.txtAños,Me.txtAños+1))

Sigue igual. no seria mejor crear un cuadro de texto con txtmes? y que me muestre los meses ahí y así poder calcular uno por uno. ya que tengo uno txtaños ?

Eso es lo que estamos haciendo, pero directamente.

Acabo de darme cuenta que hay un fallo en la función, cámbiala por esta otra:

Me.txtIndemnizacion = 15 *IIF(me.txtAños<1,1,IIF(Month(CampoFecha)<6,Me.txtAños,Me.txtAños+1))

Es decir, que si txtAños es menor que 1, ponga 1, y si es mayor o igual, que compruebe el mes, y ponga txtAños o txtAños+1, según corresponda

Creo que por que la función de txtaños esta mal lo que no esta funcionando

esta es la función Me.txtAños = DateDiff("yyyy", Me.txtFechaIngreso, Date)

calcula solamente el año.

o no seria por eso?

Cambiemos el enfoque:

Me.txtIndemnizacion = 15 * Round(DateDiff("d", Me.txtFechaIngreso, Date)/365)

ASí calculas la diferencia en días entre las dos fechas, lo divides entre 365 con lo que te la los años, con decimales, que hay entre ambas fechas.

Luego con la función Round, redondeas el resultado.

Ya me dirás si nos vamos acercando

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas