¿Cómo evitar que las consultas Access obvien datos?

Me pasa que tengo unas pequeñas aplicaciones access para crear reportes de ventas, sin embargo he tenido el problema de que a la hora de crear las consultas no me muestra todos los resultados que debería mostrar, ya que luego de generar la consulta la comparo con la información de la base de datos vinculada que estoy usando. Alguien podría indicarme qué puedo hacer al respecto o deberé usar otra herramienta para el manejo de mi información.

1 respuesta

Respuesta
1

Sin ver cómo tienes estructurada tu BD es difícil darte una solución y acertar a la primera.

Sin embargo, tu problema tiene el aspecto de que no tienes los tipos de combinaciones bien definidas.

Echa un vistazo a este artículo (http://goo.gl/Rhk6v) y busca el párrafo que pone: <<Y ahora nos encontramos con un botón que nos dice: “tipo de combinación”, y nos da 3 alternativas.>>.

Verás que el artículo se refiere a tablas, pero tiene la misma aplicación para las consultas.

Si no puedes arreglarlo me lo comentas y buscamos qué puede estar pasando.

Umm... claramente no soy un experto en access, ya que no entiendo exactamente a qué te refieres con la estructura de mi base de datos... pero para aclarar un poco, las tablas están creadas en una bd SQL y yo genero las consultas por medio de una bd access que vincula los datos de sql (no sé si me explico), luego tengo otro archivo donde genero los reportes y consultas creando una vinculación a la base de datos vinculada de access.

Sin embargo, mi problema se presenta cuando por ejemplo creo una consulta más o menos así:

EMPRESA - DOCUMENTO - FECHA - TOTALCOSTO - TOTALPRECIO

Digamos que ésta sería la consulta "A", y funciona muy bien (comparando los datos en la tabla de movimientos), luego quiero añadir un campo en la misma consulta donde cree una expresión, por ejemplo: "DESC: SiInm([TOTALPRECIO]=0,([TOTALPRECIO]*[TOTALCOSTO]),[TOTALCOSTO])" .... sucede que los datos ya no coinciden (comparando totales) con los de la consulta antes de añadir ésta expresión), ya que ha obviado algunos de los datos.

Bueno, realmente espero haberme explicado, de otra forma pues veré como subir capturas de pantalla para darme a entender mejor.

Así como me lo estás contando no puedo ver que haya nada mal ni en la construcción de la consulta ni en la construcción del campo calculado.

Se me ocurre también que, por si no lo sabes, un campo vacío contiene un valor, que es NULL. Cuando tú igualas la condición del SiInm a cero NO te está contando los NULL (es decir, te los salta).

Si este fuera el caso podrías utilizar un campo calculado intermedio para llegar al resultado final. Es decir, añadirías un campo calculado con la expresión:

MODPRECIO: SiInm(isnull([TOTALPRECIO]),0,[TOTALPRECIO]

y a partir de ahí modificar tu expresión así:

DESC: SiInm([MODPRECIO]=0,([MODPRECIO]*[TOTALCOSTO]),[TOTALCOSTO])

Si este sistema te funciona, y no quieres ver el campo calculado intermedio, simplemente construye otra consulta sobre esta consulta y añade los campos que necesites.

Si no te funcionara creo que, sin poder ver los datos y la consulta, no te podría dar una solución satisfactoria porque, insisto, parece que lo que estás haciendo lo estás haciendo bien.

Bueno. Ya me comentarás.

Un saludo,

Neckkito

No sé si tendrá relevancia, pero si no sé si te has dado cuenta de que tu condición dice:

Si [TOTALPRECIO] es igual a cero me escribes la multiplicación de [TOTALPRECIO] y [TOTALCOSTO].

Si multiplicas por cero el resultado es cero.

Luego, para simplificar, podrías escribir tu expresión simplemente como:

DESC: SiInm([TOTALPRECIO]=0,0,[TOTALCOSTO])

Por si influyera en algo.

Un saludo,

Neckkito

http://neckkito.siliconproject.com.ar/

Muchas gracias, creo que no he considerado los espacios null, así que reformularé de nuevo mi consulta y veremos que pasa. Gracias !!!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas