Access - OCULTAR VARIOS CAMPOS VACÍOS EN INFORME

   
Vista:

OCULTAR VARIOS CAMPOS VACÍOS EN INFORME

Publicado por rpm (10 intervenciones) el 23/06/2017 12:49:09
Buenas, sé que este tema se ha tratado en varios foros pero no logro dar con la tecla... Tengo una base de datos configurada para registrar viajes y cargas/descargas de camión y siempre existe un campo con origen y otro con destino pero hay veces que se efectúa una carga en otro origen o que se efectúa una descarga en otro destino, lo que quiere decir es que dependiendo del viaje hay veces que existen campos vacíos y otras no. Cada viaje lleva una hoja de pedido la cual tengo configurada con un informe y lo que me gustaría hacer es que las etiquetas de los campos que estén vacíos no aparezcan en el informe (hoja de pedido),

Tengo puesto este código al dar formato:

1
2
3
4
5
6
Private Sub Detalle_Format(Cancel As Integer, FormatCount As Integer)
If IsNull(Me![2ª Carga]) Then
Etiqueta6.Visible = False
Else: Etiqueta6.Visible = True
End If
End Sub

y me funciona pero, como tendría que hacer para ocultar mas de un campo vacío? espero vuestras respuestas, gracias y saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

OCULTAR VARIOS CAMPOS VACÍOS EN INFORME

Publicado por Anonimo (806 intervenciones) el 24/06/2017 09:27:24
¿Tal vez repitiendo el proceso para cada campo 'travieso'?

El evento es común, nada impide que se manipule a mas de un control (eso si, en los informes se ha de 'trastear' a los objetos en los eventos de su sección)

Ello en base a que los informes se crean en tiempo de ejecución y si un objeto no existe (uno que ha de ir al pie no existe si aun estamos creando la cabecera) no será posible modificarlo.

Lo que has creado se puede concentrar un poco:
.- Antes
1
2
3
4
5
6
Private Sub Detalle_Format(Cancel As Integer, FormatCount As Integer)
If IsNull(Me![2ª Carga]) Then
Etiqueta6.Visible = False
Else: Etiqueta6.Visible = True
End If
End Sub
.- Después
1
2
3
4
5
6
7
Private Sub Detalle_Format(Cancel As Integer, FormatCount As Integer)
 
Etiqueta6.Visible = Not IsNull(Me![2ª Carga])
 
'( ... Etiqueta11.Visible = Not IsNull(Me![1472ª Carga]) ...)
 
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

OCULTAR VARIOS CAMPOS VACÍOS EN INFORME

Publicado por rpm (10 intervenciones) el 26/06/2017 09:40:39
Buenas, pongo el código que me has dicho concentrado y me sale este error :

Error-Informe-1

Pulso en ¨Depurar¨ y me sale esto:

Error-Informe-2

Se me olvidó decir que mi Access es el 2016, no se si tendrá algo que ver...

gracias por adelantado...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

OCULTAR VARIOS CAMPOS VACÍOS EN INFORME

Publicado por Anonimo (806 intervenciones) el 26/06/2017 13:53:16
No utilizo el A2016 (no me aporta nada nuevo), la lógica se basa en que si funciona:
IsNull(Me![2ª Carga])

La respuesta es un Verdadero / Falso (que es la respuesta que espera al adjudicar la visibilidad).....

Quizás modificando la pregunta (pues parece que no es lo mismo 'Rezar mientras se fuma' que 'Fumar mientras se reza') se logre el resultado:
Etiqueta6.Visible = IsNull(Me![2ª Carga]) = False

Es de suponer que a esto si lo entienda ( IsNull(Me![2ª Carga]) = False )
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

OCULTAR VARIOS CAMPOS VACÍOS EN INFORME

Publicado por rpm (10 intervenciones) el 26/06/2017 17:10:40
Me sigue dando el mismo error... no se que hacer y la verdad es que tengo la idea justa de todo esto por no decir poca, espero ayuda...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

OCULTAR VARIOS CAMPOS VACÍOS EN INFORME

Publicado por Anonimo (806 intervenciones) el 26/06/2017 18:01:30
Si no funciona el método resumido, pero si funciona el original ¿por que nos complicamos? .... utiliza el original (que parece que si funciona) y modificando el nombre del objeto afectado, repítelo para cada objeto a ocultar algo como (basándonos en que el original si funciona y que 'el resto' están en la misma sección)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Private Sub Detalle_Format(Cancel As Integer, FormatCount As Integer)
If IsNull(Me![2ª Carga]) Then
Etiqueta6.Visible = False
Else: Etiqueta6.Visible = True
End If
 
If IsNull(Me![Otro Objeto]) Then
EtiquetaXX.Visible = False
Else
EtiquetaXX.Visible = True
End If
 
.....
......
 
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

OCULTAR VARIOS CAMPOS VACÍOS EN INFORME

Publicado por rpm (10 intervenciones) el 29/06/2017 09:40:01
Buenas, no he retomado este tema hasta hoy y ahora el error que me da es el que se ve en la imagen:

Error-Informe-3

Que desesperación...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

OCULTAR VARIOS CAMPOS VACÍOS EN INFORME

Publicado por Anonimo (806 intervenciones) el 30/06/2017 03:33:39
Tienes un serio problema con los nombres de los objetos, y además no mantienes una constante en tus creaciones .....

Sin entrar en detalles (a los que posiblemente no prestaras atención):

¡¡¡¡ LOS NOMBRES DE LOS OBJETOS QUE NO SIGAN LAS REGLAS (que contengan espacios o caracteres 'raritos' ) HAN DE ENCERRARSE ENTRE CORCHETES !!!!!!

Hay convenciones y consejos para los nombres pero como es el creativo que se sienta frente al teclado el que los asigna, cuando menos que siga la norma básica: ANTE LA DUDA los nombres entre corchetes.

Si al objeto lo denominas 'el dia de la conquista de los romanos' o '2ª Travesia a la vuelta de la esquina' , para que Access 'entienda' que 'eso' es el nombre de algo (formulario, informe, cuadro de texto ....) se ha de escribir asi:

'el dia de la conquista de los romanos' ===> [el dia de la conquista de los romanos]
'2ª Travesia a la vuelta de la esquina' ====> [2ª Travesia a la vuelta de la esquina]

Un nombre aceptable seria esto:
'el dia de la conquista de los romanos' ===> eldiadelaconquistadelosromanos
o esto
'el dia de la conquista de los romanos' ===> el_dia_de_la_conquista_de_los_romanos
o esto
'el dia de la conquista de los romanos' ===> ElDiaDeLaConquistaDeLosRomanos

Apreciaras que como no contiene espacios NO PRECISAN los corchetes, pero si se le ponen NO PASA NADA y sigue funcionando ¿porque se los has quitado en tu aplicación? ..... antes los tenían.

Si se utilizan caracteres no convencionales (en la programación) SIEMPRE se deberán utilizar los corchetes (como indicador de que 'no es normal' y que lo admita)

En fin, inténtalo nuevamente a ver si tienes mas fortuna (no estaría mal ojear la ayuda, tiene una magnifica literatura de la cual ha salido el 90% de esos manuales que pululan por la red)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de jorge

OCULTAR VARIOS CAMPOS VACÍOS EN INFORME

Publicado por jorge (239 intervenciones) el 26/06/2017 18:38:12
Buenos dias el primer codigo esta mal.


1
2
3
4
5
6
Private Sub Detalle_Format(Cancel As Integer, FormatCount As Integer)
If IsNull(Me![2ª Carga]) Then
Etiqueta6.Visible = False
Else: Etiqueta6.Visible = True     ' ese else no deberias poner  los puntos:
End If
End Sub

y si quieres validar mas de un campo sera

1
2
3
4
5
6
7
Private Sub Detalle_Format(Cancel As Integer, FormatCount As Integer)
If IsNull(Me![2ª Carga])  or  IsNull(Me![3ª Carga])   Then
Etiqueta6.Visible = False
Else
Etiqueta6.Visible = True
End If
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

OCULTAR VARIOS CAMPOS VACÍOS EN INFORME

Publicado por Anonimo (806 intervenciones) el 26/06/2017 19:43:48
No es ortodoxo, pero lo admite Access, los dos puntos son el indicador de que acaba la sentencia y comienza algo (como si fuera un salto de línea)

Es mas, se podría escribir asi:

If IsNull(Me![2ª Carga]) Then Etiqueta6.Visible = False Else: Etiqueta6.Visible = True

Y se podrá apreciar que tampoco tiene el 'End IF' del final (se acaba la línea ... se acaba la sentencia).

Se puede verificar con facilidad el funcionamiento en cualquier formulario o informe.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de jorge

OCULTAR VARIOS CAMPOS VACÍOS EN INFORME

Publicado por jorge (239 intervenciones) el 26/06/2017 20:28:11
master anonimo pues ojala y algun de las dos opciones le sirvan al amigo y pueda resolver el problema que tienes saludos.
master anonimo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Revisar política de publicidad