Está en la página 1de 6

NAVEGAR POR LOS FORMULARIOS.

USAR UN MENÚ.
Una forma elegante de trabajar es utilizar menús para navegar por nuestra aplicación. Desde estos
menús podemos abrir formularios, consultas o informes.

Os indicaré en este documento como abrir un formulario desde un botón colocado en otro formulario.

Supongamos que tenemos ya terminados los formularios EDITORIALES y LIBROS.

Para tener el control total, vamos a deshabilitar el asistente


para controles, ese asistente que nos ayudaba a configurar las
acciones del botón.

1) Creo un formulario en blanco y en vista diseño inserto un botón.

2) Modifico las propiedades del botón:


NOMBRE: Para identificar al botón inequívocamente cuando tecleemos código
TITULO: Una etiqueta identificativa, para que el usuario tenga información sobre el botón.

3) Ahora vamos a meter el código que ejecutará cuando hagamos click.

(Podemos ejecutar código diferente para cada “EVENTO” que suceda sobre un objeto. Los eventos
disponibles los vemos en la pestaña eventos en la hoja de propiedades del objeto en cuestión)

En el caso de un botón, los eventos disponibles son:


Escogemos el evento “Al hacer clic” y a la derecha, en el botoncito de la flecha hacia abajo, escogemos
“[Procedimiento de evento]”, luego hacemos clic en el botoncito de los tres puntitos que nos llevará a la
ventana de VBA del proyecto.

Deberíamos encontrarnos con una ventana como la siguiente.

Entre la línea de “Private Sub BOTONEDITORIALES_Click()” y la línea “End sub” pondremos el código
que se ejecutará cuando suceda el evento Click en el objeto BOTONEDITORIALES

Al hacer clic queremos que sucedan dos cosas:

1º El formulario MENU debe desaparecer

El código para que esto suceda es:

Form.Visible = False

La propiedad Visible del formulario actual (donde está el objeto) se pone con el valor False

2º El formulario EDITORIALES debe de aparecer

El código para que esto suceda es:

DoCmd.OpenForm “EDITORIALES”

Abrir el formulario EDITORIALES

En el formulario EDITORIALES, pondremos un botón para volver al formulario MENU. Pero en este
caso, no abriremos el formulario, ya que solo está oculto. En el formulario EDITORIALES nos quedaría
así:
Form.Visible = False
Forms(MENU).Visible = True

De esta forma, podremos ir abriendo y cerrando los formularios mientras navegamos por ellos.
Propiedades del formulario.
EMERGENTE y MODAL
Asegúrate de que el objeto seleccionado es el formulario, no uno de sus elementos. (Encabezados, pies
de página o detalle).

Formulario emergente: Formulario que permanece en encima de otras ventanas.

Formulario modal: Cuando un formulario se abre como modal, se debe cerrar la ventana para poder
mover el enfoque a otro objeto.
EJECUCIÓN AUTOMÁTICA AL ARRANCAR.
AutoExec
Podemos crear algunas macros sencillas desde una plantilla diseñada a tal
efecto.

Para crear nuestra macro encontraremos, en la cinta “Crear”, el icono “Macro”

Vamos a decirle 2 cosas

1) Abre el formulario MENU

2) Ejecútate automáticamente cuando arranque la base de datos

Una macro autoejecutable es, sencillamente, una macro cuyo nombre es “AutoExec”. Cuando se abre una
base de datos, Access ejecuta esta macro antes de ejecutar otras macros o código VBA.

Podemos encontrarla junto a los objetos de access

Guardamos todo y probamos.


OCULTAR EL SISTEMA GESTOR.
MENU PRINCIPAL
Lo ideal sería poder manejar toda la información desde los formularios y no necesitar la ventana
principal de Access.

Para no liarnos con el código, lo que vamos a hacer es importarlo desde un fichero y luego ejecutarlo
desde la macro “Autoexec”.

1. Abrimos el editor de VBA

2. Desde ahí importamos el archivo que os adjunto

También lo encontraremos con los objetos de la base de datos


Este es el código del archivo:

Option Compare Database


Option Explicit
Global Const SW_HIDE = 0
Global Const SW_SHOWMAXIMIZED = 3
Private Declare Function apiShowWindow Lib "user32" Alias "ShowWindow" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long

'Deshabilita la Pantalla de Access


Function fSetAccessWindow(nCmdShow As Long)
Dim loX As Long
Dim loForm As Form
loX = apiShowWindow(hWndAccessApp, nCmdShow)
End Function

Para ejecutar la función, modificamos la macro “AutoExec” y le añadimos una línea para “Ejecutar
Código”. Para volver a ver el entorno de Access tenemos que ejecutar la función con un valor diferente
de cero, (3).

Guardamos y probamos que al ejecutar la base de datos solo aparece el formulario “MENU” en pantalla.

NOTAS

 Para poder abrir la base de datos y que NO se ejecute la macro AutoExec, debemos pulsar la
tecla SHIFT durante toda la carga del archivo de base de datos.
 Lógicamente, para que se muestre el formulario cuando no se muestra el sistema gestor, el
formulario tiene que ser emergente.

También podría gustarte