** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Ocultar campos vacíos y recolocar el resto
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoOcultar campos vacíos y recolocar el resto

 Responder Responder Página  12>
Autor
Mensaje
a.alf Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 19/Octubre/2006
Localización: Castello España
Estado: Sin conexión
Puntos: 508
Enlace directo a este mensaje Tema: Ocultar campos vacíos y recolocar el resto
    Enviado: 27/Abril/2021 a las 19:17
Hola, buenas tardes.
He hecho una aplicación para imprimir unas etiquetas, las cuales a veces tienen algún campo vacío. 
Me gustaría ocultar este campo con su etiqueta correspondiente y recolocar los que tienen datos para que no queden huecos .
Lo he intentado haciendo los campos de altura 0 y usar la propiedad autoextensible, pero no logro que funcione.
Adjunto imagen de la etiqueta.



Gracias.
Un saludo.

Si alguien te regala su tiempo, agradecelo eternamente, ya que te está dando algo que nunca recuperará.
Arriba
LuisR Ver desplegable
Asiduo
Asiduo


Unido: 22/Julio/2013
Localización: España
Estado: Sin conexión
Puntos: 351
Enlace directo a este mensaje Enviado: 27/Abril/2021 a las 20:01

En propiedades de las etiquetas (supongo que son un informe) -> eventos -> al cargar -> generador de código -> escribes....

Private Sub Report_Load()

If Me.[año fabricación] = "" 
Then
Me.[año fabricación].Visible = false
Else
Me.[año fabricación].visible = true
End If

End Sub





Otra opción es la función ISNULL.



Arriba
a.alf Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 19/Octubre/2006
Localización: Castello España
Estado: Sin conexión
Puntos: 508
Enlace directo a este mensaje Enviado: 27/Abril/2021 a las 20:17
Buenas tardes y gracias por tu tiempo.
Tu código funciona , pero se quedan los huecos de los campos ocultados y eso queda feo,
Lo que busco es ocultar y reposicionar los campos que quedan visibles para que no queden
huecos entre ellos
Las etiquetas están en un informe.

Gracias
Un saludo.

Si alguien te regala su tiempo, agradecelo eternamente, ya que te está dando algo que nunca recuperará.
Arriba
a.alf Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 19/Octubre/2006
Localización: Castello España
Estado: Sin conexión
Puntos: 508
Enlace directo a este mensaje Enviado: 27/Abril/2021 a las 20:22
Hola otra vez.
Los campos vacios no son siempre los mismos. Y a veces estan todos llenos.
Un saludo.

Si alguien te regala su tiempo, agradecelo eternamente, ya que te está dando algo que nunca recuperará.
Arriba
LuisR Ver desplegable
Asiduo
Asiduo


Unido: 22/Julio/2013
Localización: España
Estado: Sin conexión
Puntos: 351
Enlace directo a este mensaje Enviado: 27/Abril/2021 a las 20:30

Entonces ya lo complicamos. Habría varias opciones, la más simple (y laboriosa):

En propiedades del campo "Voltaje" -> eventos -> al cargar etc etc

If Me.[año fabricación] = "" 
Then
DoCmd.MoveSize 3480, 1800, 200, 300
Else
End If


* derecha, abajo, ancho, alto



Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 14926
Enlace directo a este mensaje Enviado: 27/Abril/2021 a las 22:45
Hasta dónde a mi me consta,  MoveSize es para mover formularios. Para mover controles se deben establecer las propiedades Left y Top de cada uno de ellos.

Como yo lo haría
- Ocultar todos los controles implicados
- Crear una cadena con todos los nombres de los controles que debes MOSTRAR
- Convertir esa cadena en un Array
- Establecer la misma altura para todos los controles
- Establecer cual será el "interlineado" para la separación de los controles
- Establecer la altura del primer control

Llegado el momento recorrer el Array y posicionar los controles utilizando un bucle que, en cada iteración, calcule el Top utilizando la altura inicial + (la altura del control x el número de iteración) + (interlineado x el número de iteración)
For i = 0 To Ubound(arrControles)
  Me(arrControles(i)).Top = lngAlturaInicial + (Me(arrControles(i)).Height * i) + (lngInterlineado * i)
  Me(arrControles(i)).Visible = True
Next

Que conste que no lo he probado. Es solo teoria

Un saludo
Xavi, un minyó de Terrassa

Mi web
Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 14926
Enlace directo a este mensaje Enviado: 27/Abril/2021 a las 22:46
Por cierto, dices que has utilizado "autoextensible" pero... ¿y autocomprimible?
Xavi, un minyó de Terrassa

Mi web
Arriba
a.alf Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 19/Octubre/2006
Localización: Castello España
Estado: Sin conexión
Puntos: 508
Enlace directo a este mensaje Enviado: 28/Abril/2021 a las 07:42
Buenas y gracias por vuestro tiempo.
He husado los dos . Con el diseño de todos los campos agrupados en modo apilado y primero con autoextensible
y después con autocomprimible y con los dos. Pero seguro que algo haría mal por que no me ocultaba nada.
Seguiré intentandolo de esta manera ya que por código, como dices (Xavi), no estoy preparado para realizarlo.
Gracias
Un saludo.

Si alguien te regala su tiempo, agradecelo eternamente, ya que te está dando algo que nunca recuperará.
Arriba
a.alf Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 19/Octubre/2006
Localización: Castello España
Estado: Sin conexión
Puntos: 508
Enlace directo a este mensaje Enviado: 28/Abril/2021 a las 12:52
Hola de nuevo.
Ayer no me di cuenta, el autocomprimir si que oculta el campo, lo que no oculta es la etiqueta de dicho campo, entonces el hueco sigue estando ahí por culpa de la etiqueta.
No se si esto tendrá solución.

Gracias
Un saludo.

Si alguien te regala su tiempo, agradecelo eternamente, ya que te está dando algo que nunca recuperará.
Arriba
a.alf Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 19/Octubre/2006
Localización: Castello España
Estado: Sin conexión
Puntos: 508
Enlace directo a este mensaje Enviado: 28/Abril/2021 a las 13:01
Adjunto imagen
Un saludo.

Si alguien te regala su tiempo, agradecelo eternamente, ya que te está dando algo que nunca recuperará.
Arriba
a.alf Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 19/Octubre/2006
Localización: Castello España
Estado: Sin conexión
Puntos: 508
Enlace directo a este mensaje Enviado: 28/Abril/2021 a las 18:38
Hola.
He estado mirando las posibilidades de campos vacíos que hay, y solo puedo tener tres casos diferentes,
de esta manera opto por lo mas fácil, tener 3 informes y según la etiqueta imprimir uno u otro.

Gracias y se puede cerrar el hilo.
Un saludo.

Si alguien te regala su tiempo, agradecelo eternamente, ya que te está dando algo que nunca recuperará.
Arriba
fcoval Ver desplegable
Asiduo
Asiduo


Unido: 19/Enero/2013
Estado: Sin conexión
Puntos: 225
Enlace directo a este mensaje Enviado: 28/Abril/2021 a las 19:40
Cita
He estado mirando las posibilidades de campos vacíos que hay, y solo puedo tener tres casos diferentes,

de esta manera opto por lo mas fácil, tener 3 informes y según la etiqueta imprimir uno u otro.


No me gusta esa idea de varios informes, la verdad.
¿ Por que no estas preparado para usar código ? ¿ te has metido alguna vez a programar aunque sea algo sencillo ?

Quiero entender que el formato que buscas es el mostrado en el Informe2 y no en el Informe1

NO CERREIS EL HILO TODAVIA.

Editado por fcoval - 28/Abril/2021 a las 20:36
Arriba
a.alf Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 19/Octubre/2006
Localización: Castello España
Estado: Sin conexión
Puntos: 508
Enlace directo a este mensaje Enviado: 28/Abril/2021 a las 20:40
Si que me he metido a programar, pero cosas pequeñas y fáciles.
Lo que necesito ahora me supera y con dos informes mas lo tengo solucionado.
Un saludo.

Si alguien te regala su tiempo, agradecelo eternamente, ya que te está dando algo que nunca recuperará.
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 14428
Enlace directo a este mensaje Enviado: 28/Abril/2021 a las 20:40
Otro posible camino sería borrar las etiquetas / campos que no se utilizan ... seleccionar los controles y lanzar el comando igualar en vertical ... ahora, habrá que buscar como se llama ese comando .. y como se seleccionan varios controles a la vez.

Suponiendo que se pueda poner el informe en modo diseño (no valdría una accde / accdr).


Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
a.alf Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 19/Octubre/2006
Localización: Castello España
Estado: Sin conexión
Puntos: 508
Enlace directo a este mensaje Enviado: 28/Abril/2021 a las 22:17
Perdona fcoval estaba mirando el foro en el movil y el enlace a las imagenes no me sale.
Si lo que buscaba era lo mostrado en el informe 2.

gracias
Un saludo.

Si alguien te regala su tiempo, agradecelo eternamente, ya que te está dando algo que nunca recuperará.
Arriba
 Responder Responder Página  12>
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable