PDA

Ver la Versión Completa : problema con siinm en informe access 97


juanmdq
11-05-2005, 15:43:38
Estoy trabajando con access 97 y tengo un problema con un campo de un informe
Hola a todos:

es un campo calculado con la siguiente instruccion:
=SiInm(
(Negado EsNulo([INGRESO]) Y EsNulo([EGRESO])),
CALC_TOT_DIAS([INGRESO],ahora()),
[TOTAL_DIAS]
)

[INGRESO] Y [EGRESO] son fechas, si falta la fecha de egreso cuenta los dias hasta el dia de la fecha, en caso contrario toma el valor de un campo de la consulta

El problema es que cuando no se cumple la condicion, muestra #ERROR? en ves de mostrar el valor del campo [TOTAL_DIAS].
Si por ejemplo remplazo [TOTAL_DIAS] con una constante "0" el valor lo muestra en forma correcta

espero que se entienda cual es el problema y se agradece cualquier sugerencia


Saludos

marcoszorrilla
11-05-2005, 15:51:05
Tengo que salir y no tengo tiempo de revisar el ejemplo completo, pero si trabajas con fechas, entonces utiliza la función Fecha() y no Ahora(), que devuelve la fecha y la hora.

Aun tengo tiempo de añadir, Calc_Total_Dias supongo que es una función que has creado, convendría ver el código.

Quizas puedas evitar la función y poner directamente:
Ahora() - [Ingreso]

Un Saludo.

juanmdq
11-05-2005, 16:39:12
Gracias por la respuesta

1- Te comento que la funcion calc_tot_dias recibe dos fechas y calcula teniendo en cuenta ciertas condiciones, por lo que no se podria remplazar con la resta.

2- Cuando tiene que mostrar el resultado de calc_tot_dias() lo muestra bien.

3- Probe de cambiar el campo [TOTAL_DIAS] por otros campos de la consulta y en estos casos muestra bien los valores. Tambien estuve controlando el campo [TOTAL_DIAS] tenga valores para mostrar.

No se me ocurre que otra cosa probar. HELP

Saludos

marcoszorrilla
11-05-2005, 21:27:50
Prueba a sustituir el campo [Total_Dias] por una cantidad estática:
=SiInm((Negado EsNulo([INGRESO]) Y esNulo([EGRESO]))
,CALC_TOT_DIAS([INGRESO],ahora())
,10
)

Sino te da error entonces es que el campo [Total_Dias], puede ser que contenga un valor nulo y Access cuando choca con un valor nulo reporta un error.

Un Saludo.

juanmdq
12-05-2005, 17:04:41
Hola:

El campo [total_dias] siempre tiene un valor.
Al cambiar [total_dias] por una constante, muestra bien el valor.

Igualmente te comento que lo pude "resolver" remplazando la referencia al campo por su calculo.
No es la mejor opción pero funciona. :)

quedo algo parecido a esto:

=SiInm(
(Negado EsNulo([INGRESO]) Y EsNulo([EGRESO])),
CALC_TOT_DIAS([INGRESO],ahora()),
"CALCULO DE VUELTA EL VALOR DE [TOTAL_DIAS]"
)


gracias por todo.