Código para mostrar/ocultar varios campos si son nulos

Me surge la siguiente inquietud. Tengo un formulario el cual mediante botones hace visible/invisible ciertos campos. Por defecto todos los campos son invisibles, y mediante este botón se van haciendo visibles a medida que se presiona. La inquietud recae en que el usuario carga datos y va agregando campos (los hace visibles cuando debe ingresar algún dato), pero ala cerrar el formulario y volverlo a abrir, ese registro no muestra esos campos que si poseen valores (porque por defecto cargan invisibles).

La pregunta sería, en el evento al cargar del formulario cómo puedo hacer para poner mediante código algo así como "todos los campos que sean nulos se queden invisibles, pero los que poseen datos, ¿aparezcan visibles"?

La realidad es que hablamos de 30 o 40 campos. No sé si habrá alguna manera genérica de referirse a todos los campos que sean nulos o no, así evitar nombrar uno por uno.

2

2 Respuestas

791.175 pts. No responderé preguntas de usuarios que no valoren las...

Si solo quieres que los campos se vuelvan visibles o no en el momento de cargar el formulario, el código que te propongo lo puedes poner en el evento "al cargar" del formulario, pero si quieres que te los muestre/oculte al navegar, usa "al activar registro" y no "al cargar".

El código sería:

Dim ctl As Control
For Each ctl In Me.Controls
    ctl.Visible = Not IsNull(ctl)
Next ctl

Un saludo.


     bit.ly/ForoNkSv 

Veo que Jacinto cayó en un detalle que yo no, validar el tipo de control previamente...

¡Gracias! Lo usé como me dijo Jacinto y anduvo bien!!! Igual también me sirvió la explicación tuya para entender un poco más ese método.

498.025 pts.

Marcelo: En el Form_Load() de tuformulario pon éstas líneas.

Dim Ctrl As Access.Control
For Each Ctrl In Me.Controls
    If Ctrl.ControlType = acTextBox Or Ctrl.ControlType = acComboBox Then
        If IsNull(Ctrl.Value) Or Ctrl.Value = "" Then
             Ctrl.Visible = False
        End If               
    End If
Next Ctrl

Un saludo >> Jacinto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas