Campos en informe access sin valores

Que tengo: tengo un informe basado en una consulta, en la cual hay campos que tiene valor y otros no, al ejecutar la consulta me aparecen todos los campos sin valores e imprimo el informe y también esta todo sin valores. Como hago para que, al ejecutar la consulta, me aparezcan los campos con valores y sin valores, e imprima el informe con los campos con valores y sin valores.

Es un detalle del problema muy general, pero me ayudaría cualquier pista que me puedan dar.

2 Respuestas

Respuesta
1

Si en la consulta no se muestran los valores, en cualquier parte en que se utilice esa misma consulta no aparecerán valores.

Normalmente la función Nz suele resolver el problema (al cambiar los nulos por otro valor, el cero en este caso).

Se necesitaría conocer si (aun sin mostrar valores en algún campo) la consulta devuelve el numero de registros correctos.

Muchas gracias por tu respuesta. ¿En qué parte utilizo la función NZ? Había probado, en la consulta, poner como criterios Es nulo y Es noes nulo, pero siguen si visualizarse los registros. Contestando a tu pregunta "Se necesitaría conocer si (aun sin mostrar valores en algún campo) la consulta devuelve el numero de registros correctos", te comento que tengo 3 registros cargados y en la consulta no aparece ninguno, ya que, en esos tres registros hay campos sin valores ingresados

Sin una muestra de los datos y de lo que se pretende obtener solo se puede dejar libre la imaginación y al final no acertar.

Dependiendo de las relaciones que se establezcan, se puede obtener diferentes conjuntos de resultados con/sin valores en algún campo solo hace falta partir de datos coherentes (que se puedan relacionar).

Con un par de registros como muestra, se puede llegar a una solución de forma mas rápida (desde la distancia solo se conoce lo que se publica)

1.- Indicar de que se dispone
2.- Indicar que se pretende obtener
3.- Publicar lo que se intento (y estar abierto a soluciones alternativas).

La función NZ solo necesita que el campo exista (aun sin valor) para darle de forma temporal un valor alternativo.

Por ejemplo, un campo es el precio y en la consulta se utiliza como tal:
[precio] 

Pero pueden faltar valores (y se espera que se les delate con un cero) así que donde antes estaba el campo de la tabla, ahora se le asigna un valor por defecto con NZ:

Nz( [Precio; 0) 

Y en ocasiones (muchas ocasiones) se la añade un alias, en el diseño grafico de la consulta el alias va delante:

UnPrecio: Nz([Precio]; 0)

Que se visualizará así en la SQL (imaginaria):
Select  Nz([Precio]; 0) As UnPrecio , OtroCampo, MasOtroCampo From Unatabla;

¡Gracias! Ya encontré la solución! Les muestro para que sirva a otras personas que tengan el mismo problema. Estuve mirando y las relaciones entre tablas era de 1 a 1. Abrí la consulta de origen de datos y modifique de la siguiente forma:

Y de esa forma pude ver e imprimir datos relacionados, sin necesidad que estén todos con valores.

Cuando hay relaciones entre varias tablas hay que ser cuidadoso al establecer las relaciones, una relación 1-1 equivale en la practica a tener juntos en una tabla a (concatenando los registros con el mismo ID) y no es de las mas utilizadas.

Al final se ha hecho lo correcto, modificar la consulta para que se muestren todos los registros con y sin valor (bien hecho).

Respuesta
1

Si puede adjunte la consulta para revisarla y así dar un concepto

Si tiene una consulta en la que desea encontrar registros que contengan un campo específico, pero no todos los registros tienen ese campo, puede utilizar una cláusula "WHERE" junto con la función "IS NOT NULL" para filtrar los registros. Por ejemplo

SELECT *
FROM tabla
WHERE campo IS NOT NULL;

También puede utilizar las cláusulas LEFT JOIN o RIGHT JOIN para encontrar registros que contengan un campo específico, pero no todos los registros tienen ese campo. Estas cláusulas se utilizan para combinar registros de dos o más tablas basándose en una condición de igualdad. Por ejemplo.

SELECT *
FROM tabla_principal
LEFT JOIN tabla_secundaria ON tabla_principal.id = tabla_secundaria.id
WHERE tabla_secundaria.campo IS NOT NULL;

En este ejemplo, "tabla_principal" es la tabla principal en la que desea buscar y "tabla_secundaria" es la tabla que contiene el campo que quiere que esté presente en los registros. La cláusula LEFT JOIN combina los registros de ambas tablas basándose en la condición "tabla_principal.id = tabla_secundaria.id". Luego, la cláusula WHERE "tabla_secundaria.campo IS NOT NULL" filtra los registros en los que el campo no es nulo.

La misma idea se puede aplicar utilizando RIGHT JOIN en lugar de LEFT JOIN si prefiere seleccionar los registros de la tabla_secundaria que contienen el campo específico.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas