Mostrar u ocultar formularios en Access, mediante VBA

Tengo un archivo Access en el cual necesito ocultar todos los formularios mediante código.

Intente con .visible=false pero solo esconde la ventana. Necesito que me lo oculte como cuando se selecciona la opción ocultar de este grupo.

3 respuestas

Respuesta
2

Philidor: Partiendo de que yo no lo he usado, si leí hace tiempo un Articulo de Arkaitz Arteaga sobre el tema de ocultar Objetos.

http://www.accessyexcel.com/ocultar-objetos-en-base-de-datos-access-remota/ 

Explicitamente no vienen los Formularios, pero al final del Articulo, después del código de OcultarInformes, hay una nota que pone:

El resto de objetos se ocultarían de la misma manera, cambiando el nombre del Container. Podéis investigar un poco agregando una inspección en una de las funciones anteriores al objeto Base. Containers. Os mostrará todas la posibilidades.

Incluso viene el eMail del autor, por lo que supongo estará abierto a comentarios y/o ayudas.

Espero sea de tu interés y sobre todo te resuelva el Problema. Mis saludos >> Jacinto

Philidor: Se me ha olvidado comentarte, aunque supongo que te percatarás, de que en el enlace que te he enviado hay un enlace a un artículo previo, sobre ese tema.

http://www.programadordepalo.com/ocultar-tablas-en-access-remoto-db_hiddenobject-y-sethiddenattribute/ 

Un saludo >> Jacinto

Respuesta
1

Por código no conozco la forma (ni siquiera sé si es posible hacerlo), pero tienes una forma "manual":

En el panel de navegación, haz click derecho encima del formulario que quieras ocultar, escoge "propiedades" o "propiedades de la vista" y marca la casilla "oculto".

Si se te sigue mostrando (pero más claro), es porque tienes configurada tu BD para mostrar lso objetos ocultos. Para cambiarlo, vete a las opciones de access -> base de datos actual -> opciones de exploración y desmarca la casilla de mostrar objetos ocultos.

Un saludo


Si, de esa forma lo se hacer, pero estoy buscando el código, ya que lo quiero complementar con otra cosa. He ocultado con código las tablas y las queries, pero aun no logro ocultar los formularios.

Por curiosidad ¿qué código usaste?

Para ocultar las tablas y queries utilice el siguiente código

Public Sub Ocultar()
For Each myObject In Application.CurrentData.AllTables
If Not (myObject.Name Like "Msys*") Then
Application.SetHiddenAttribute acTable, myObject.Name, True
End If
Next myObject
For Each myObject In Application.CurrentData.AllQueries
If Not (myObject.Name Like "Msys*") Then
Application.SetHiddenAttribute acTable, myObject.Name, True
End If
Next myObject
End Sub

Lastimosamente application.currentdata, no tiene la opción de hacer referencia a los formularios.

Acabo de aprender una cosa que no sabía...

Efectivamente, Application. CurrentData no contiene la colección de formularios, pero tienes Application. CurrentProject que tiene las colecciones AllForms, AllReports, AllMacros y AllModules, con lo que puedes usar el mismo código para ocultar esos elementos, por ejemplo, los formularios:

For Each myObject In Application.CurrentProject.al
   If Not (myObject.Name Like "Msys*") Then
      Application.SetHiddenAttribute acForm, myObject.Name, True
   End If
Next myObject

Un saludo.


Me cortó el código:

For Each myObject In Application.CurrentProject.AllForms
    If Not (myObject.Name Like "Msys*") Then
        Application.SetHiddenAttribute acForm, myObject.Name, True
    End If
Next myObject
Respuesta
1

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas