Quiero que mi base de datos Microsoft Access me genere un informe de todas mis facturas

Hola smanero,
Mi pregunta está bloqueada, supongo que la habrás rechazado (soy nuevo aquí y no sé como va ésto).
Creo que el problema es que no entendí tu respuesta primera, y sigo sin entenderla. Lo que quiero es ver un informe que me muestra todas las facturas cuyo campo 'Estado' sea 'Abonada', o ver sólo las 'Remesadas', o ver sólo las 'Pendientes'.
Hasta aquí es fácil y se hacerlo. Lo que no sé hacer es que, ademas de lo anterior, me pueda muestrar las facturas 'Abonadas' Y las 'Remesadas' (por decir algo).
Gracias por tus prontas respuestas.

1 Respuesta

Respuesta
1
Para centrarnos, tienes un informe para ver solo las 'remesadas' o solo 'abonadas'... ¿cómo has hecho ese informe? ¿´Con qué código lo ejecutas?, eso es lo que quiero, ponme el código y me dices este es para las 'remesadas' este otro para abonadas etc.
Buenos días,
Éste es el código de la consulta que genera el informe:
SELECT
tblEntidad.Entidad,
tblUsuarios.[NIF / NIE],
tblUsuarios.[Apellido (1)],
tblUsuarios.[Apellido (2)],
tblUsuarios.Nombre,
tblFacturas.[Base imponible],
tblFacturas.IVA,
tblFacturas.Total,
tblFacturas.[Nº Documento],
tblFacturas.Estado,
tblFacturas.NextToDo
FROM
(tblEntidad INNER JOIN tblUsuarios ON tblEntidad.Entidad = tblUsuarios.[Entidad concertante]) INNER JOIN tblFacturas ON tblUsuarios.[NIF / NIE] = tblFacturas.[NIF / NIE]
WHERE
(((tblEntidad.Entidad)=[Formularios]![filtroEntidad]![cboEntidad]) AND ((tblFacturas.NextToDo)=[Formularios]![filtroEntidad]![cboNextToDo]))
OR ((([Formularios]![filtroEntidad]![cboEntidad]) Is Null) AND (([Formularios]![filtroEntidad]![cboNextToDo]) Is Null))
OR (((tblFacturas.NextToDo)=[Formularios]![filtroEntidad]![cboNextToDo]) AND (([Formularios]![filtroEntidad]![cboEntidad]) Is Null))
OR (((tblEntidad.Entidad)=[Formularios]![filtroEntidad]![cboEntidad]) AND (([Formularios]![filtroEntidad]![cboNextToDo]) Is Null));
Los dos últimos OR son para que me muestre todos los valores posibles de un campo si su cbo asociado se deja en blanco (mi primera pregunta era si hay otra manera más eficaz de hacerlo, ya que si quiero añadir más opciones de filtrado, el código crece exponencialmente).
Mi segunda pregunta es, como hago para meter otra opción más referente al campo tblFacturas.NextToDo, de manera que me filtre por dos posibles valores de éste campo, no sólo por un posible valor.
Soy consciente de que me explico de pena :S
Borra el 'where' y pon este:
where
tblEntidad.Entidad like nz([Formularios]![filtroEntidad]![cboEntidad],'*')
AND tblFacturas.NextToDo like nz([Formularios]![filtroEntidad]![cboNextToDo],'*')
luego en diseño de la consulta verás como te queda, y si tienes que añadir más es cuestion de replicar el código y sustituir.
La cosa se facilitaría si en el combo en lugar de ser nulo, el valor por defecto fuese '*', que en Access significa todos.
Entiendo. Me he informado de lo que hacen Like y NZ y veo que tu opción es muy eficaz.
También entiendo lo que dices del valor por defecto *. Lo he hecho, poniendo
(((tblEntidad.Entidad) Like [Formularios]![filtroEntidad]![cboEntidad]) AND ((tblFacturas.NextToDo) Like [Formularios]![filtroEntidad]![cboNextToDo]));
Y funciona perfectamente, pero hay un problema: si elijo un valor en el combo y luego quiero volver a dejarlo en blanco, tendría que añadir el * como posible valor, y no sé si access me dejará poner * en un campo de una tabla. Tal y como está ahora mismo, funciona de maravilla, muchísimas gracias.
Por desgracia, hay algo que no funciona. El primer combo (Entidad), parece tener un problema. Si lo dejo en blanco, no me muestra la información relativa a la segunda entidad, sólo la de la segunda (estoy definiendo la base de datos y por ahora sólo tengo dos entidades posibles). Si elijo la primera, funciona bien. Si elijo la segunda, no me muestra nada.
Me has resuelto una señora papeleta con tu respuesta anterior, muchas gracias de nuevo.
Bueno el que te deje poner o no * como valor es secundario, si no puedes usa la función NZ, lo que dices luego no se que te puede pasar, pero está claro que es el camino correcto.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas