Eliminar campos cuyo valor sea "," en un informe
Acabo de empezar con esto de access y estoy un poco perdido a ver si me pueden echar una mano.
Os cuento tengo una base de datos con unos 20 campos que son combobox con un valor predeterminado de ";" bien quiero hacer un informe para que me imprima una especie de factura y no quiero que salgan los campos vacíos o en este caso los campos que tengan "," de forma que en el informe salgan todos los campos uno debajo de otro pero si por el medio hay un ";" que no lo muestre y pase al siguiente
No se si me he explicado bien
1 respuesta
En el origen del control puedes poner una condición. Sería:
=iif(nz(<nombre del campo>;"")= ";";null;<nombre del campo>)
En caso de tener el carácter ";" pondrá el valor null, en otro caso dejará lo que tenga el campo.
lo primero muchas gracias por contestar y además con tanta rapidez
te comento un par de cosas que soy muy pero que muy nuevo
esto me imagino que lo tendría que poner en el campo dentro del informe ¿verdad?
2.- en el caso de que esto me funcionará hasta el momento no lo he conseguido creo que el aunque no me pusiera el "," si dejaría el campo un hueco verdad
te pongo un ejemplo de lo que tengo y lo que pretendo para ver si me hago entender mejor
ej: como me sale el informe
vendedor fecha cliente
===========================
manzanas
;
naranjas
;
;
;
peras
como quiero que salga el informe
vendedor fecha cliente
===============================
manzanas
naranjas
peras
gracias de nuevo y un saludo
Si lo que quieres es que el informe presente todos los registros en los que el vendedor no sea ";" tendrás que hacerlo usando el 'origen del registro' del informe.
Normalmente tendrás puesto el nombre de la tabla en esa propiedad del informe, lo que tendrías que tener para que no salgan esos registros es:
Origen del registro: select * from <nombre tabla> where vendedor<>";"
lo primero muchas gracias por contestar y además con tanta rapidez
te comento un par de cosas que soy muy pero que muy nuevo
esto me imagino que lo tendría que poner en el campo dentro del informe ¿verdad?
2.-
en el caso de que esto me funcionará hasta el momento no lo he
conseguido creo que el aunque no me pusiera el "," si dejaría el campo
un hueco verdad
te pongo un ejemplo de lo que tengo y lo que pretendo para ver si me hago entender mejor
ej: como me sale el informe
vendedor fecha cliente (encabezado informe) hasta aquí todo ok
===========================
manzanas pertenece a combobox frutas
; pertenece a combobox lácteos (no aparezcas ya que no vendí ninguno)
mortadela pertenece a combobox charcutería
; pertemece a combobox congelados (no aparezcas ya que el valor es ";")
; pertemece a combobox5 (no aparezcas no vendí nada de esa sesión)
; pertemece a combobox6 (no aparezcas no vendí nada a este cliente de esa sec)
lubina pertenece a combobox pescados
como quiero que salga el informe
vendedor fecha cliente
===============================
manzanas ------------------------------------combobx1
mortadela --------------------------------------combobox2
lubina -----------------------------------------combobox7
soy muy malo explicándome lo se
lo que pretendo es poder elaborar una especie de factura con los productos que compro el cliente sin tener por el medio lo dichosos ";"
gracias de nuevo
si los guardo en una tabla y en una consulta
tabla1
capo id autonumérico
el resto son todos campos de te texto
o campos de cantidad numéricos
Entiendo que tienes una tabla (tabla1) del estilo:
Id --- producto1 --- cantidad1 --- producto2 --- cantidad2 --- producto3...
Si es así... malo. No es una estructura correcta para tratar en una base de datos.
Pero bueno, algo tendremos que hacer. Veamos,
Si es esa la estructura, la consulta debería ser de este estilo:
select id,produto1 as producto,cantidad1 as cantidad from tabla1
UNION select id,produto2,cantidad2 from tabla1
UNION select id,produto3,cantidad3 from tabla1........
Esta consulta te devolvería un registro para cada producto1 y su cantidad, otro para el producto2, etc...
Para evitar que salgan los productos con ";" sólo habría que poner una cláusula "where" en cada selección. Yo pondría algo así:
select id,produto1 as producto,cantidad1 as cantidad from tabla1 where producto1<>";" or cantidad1<>0
UNION select id,produto2,cantidad2 from tabla1 where producto2<>";" or cantidad2<>
UNION select id,produto3,cantidad3 from tabla1 where producto3<>";" or cantidad3<>........
No sé si será esto lo que te pasa.
exacto así lo tengo tal y como dices y la respuesta tiene muy buena pinta.
muchas gracias y voy a probar y te cuento
saludos
La forma correcta de almacenar esa información en una tabla sería tener:
Id --- nº Orden --- producto --- cantidad
De esta forma grabarías sólo los productos que necesitas y los informes serían más sencillos.
Cuesta un poco más el proceso para grabar la información pero simplifica mucho el resto de procesos.
Además, ahora tendrás un número limitado de productos que no puedes sobrepasar fácilmente. La otra estructura no te limita.
Bueno, es un consejo. Tú verás si con lo que estás haciendo tienes suficiente.
Ya me dirás si te ha funcionado.
bueno te cuento hemos/has conseguido solucionar parte del problema ahora tenemos todos los productos agrupados en un solo campo (de echo esto ya lo había conseguido de otra forma mucho mas gocha (guardando los valores en variables publicas y pegándolas luego en una tabla)
ahora el informe sale tal que así
id producto cantidad tencico precio cliente
5 bbbbbbbbbb 4 manolito 70 uno cualquiera
---------------------------------------------------------------------------------------------------------------
5 aaaaaaaaaaaaa 2 manolito 40 uno cualquiera
---------------------------------------------------------------------------------------------------------------
5 zzzzzzzzzzz 3 manolito 20 uno cualquiera
---------------------------------------------------------------------------------------------------------------
6 aaaaaaaaaaaa 5 jorgito 100 otro cualquiera
---------------------------------------------------------------------------------------------------------------
6 jjjjjjjjjjjjjjjjjjjjjj 1 jorgito 25 otro cualquiera
----------------------------------------------------------------------------------------------------------------
ya que al estar todos en registros separados no se puede o no se como volver a agruparlos
como tendría que estar es id, técnico, cliente en el encabezado
5 manolito uno cualquiera
y en el detalle
producto cantidad precio
bbbbbbbb 4 70
aaaaaaaaaaa 2 40
zzzzzzzzzzzzz 3 20
---------------------------------------------------------------------------------------------------------------
encabezado 6 jorgito otro cualquiera
detalle
producto cantidad precio
aaaaaaaaaaaaaaaaaa 5 100
jjjjjjjjjjjjjjjjjjjjj 1 25
menuda chapa que te estoy dando desde ya agradecido por todas las molestias que te has tomado
Eso lo haces en el informe indicando que agrupe por el campo "id" y poniendo los datos que son iguales (id y técnico) en el encabezado de grupo.
MUCHÍSIMAS GRACIAS Ha funcionado perfectamente el caso es que la consulta como te comente le había realizado de otra forma mucho más canalla de lo que tu me dijiste pero al final llegue el mismo camino y el problema era simplemente que no sabia agrupar en el informe.
como comente en la pregunta es lo que tiene no tener ni p.. idea de programar y que me metieron en este marrón.
no se como más darte las gracias tienes 5 start por todo
- Compartir respuesta