Definición de campos

En una tabla de ventas guardo el importe y los kgs. He definido estos campos como numéricos dobles.
Cuando hago un informe de ventas y quiero saber pts/kgs, coloco un control
en dicho informe dividiendo ambos campos. Durante un tiempo funcionó pero
ahora lo que me sucede es que cuando pido dicho informe en vez de salirme
la información que pido, se generan infinitas páginas en blanco y el programa
se queda colgado. Si quito el control que hace esa división el informe va pero si le vuelvo a poner deja de ir.
He observado que si cambio los campos a numéricos decimal si va. ¿Tiene esto algo que ver o es casualidad?
Me ha empezado a pasar con algún otro informe que divide campos similares
de otras tablas. ¿Debo hacer lo mismo con esos campos, ponerlos como decimal?
¿No puedo controlar de alguna manera esa especie de desbordamiento que se produce? Tengo Access 2000 y nunca me ha puesto mensaje de "Desbordamiento", si recuerdo que me lo ponía a veces con Access 2.
Gracias anticipadas y Saludos
1

1 respuesta

1
Respuesta de
Supongo que en algún momento te ocurrirá una divisisión por cero, o te encontrarás con un registro con un campo con valor nulo, y entonces tienes esos problemas, yo haría lo siguiente. En el campo calculado Ptas/Kg pondría como origen de control:
=iif(isnumeric(Importe) and Isnumeric(KGS) and Kgs<>0;Importe/KGS;0)
Es decir si importe y Kgs son numéricos y además kgs<>0 hago la división, si no, pongo un cero.
Saludos.
Hola de nuevo. No te aclaré en la pregunta que tengo puesta la función que me aconsejas. Así evito valores nulos y ceros. Ademas pido el informe en un conjunto pequeños de registros donde tengo certeza de que no existen valores de ese tipo y me pasa igual. De todas fomas muchas gracias por tu colaboración. Espero recurrir a ti en otras ocasiones. Saludos.
Añade un comentario a esta respuesta
Añade tu respuesta
Haz clic para o
Escribe tu mensaje

Más respuestas relacionadas

¿No es la pregunta que estabas buscando?
Puedes explorar otras preguntas del tema Microsoft Access o hacer tu propia pregunta: