Menu Personalizado
Este é um tipo de menu que nos permite economizar tempo, linhas de código e uma melhor arrumação em termos de formulários abertos, uma vez que com este menu apenas precisamos de um formulário aberto. Além de diminuir o número de formulários abertos também diminui o número de botões num menu para abrir cada formulario.
Este tipo de menu, certamente que já existe há algum tempo e já é utilizado por muitos utilizadores do Access.
Então em que consiste este menu?
Vamos criar o menu utilizando uma caixa de combinação que contenha todos os formulários que pretendemos abrir através dele. Ao selecionar uma das opções da caixa de combinação o respectivo formulário é exibido dentro de subformulário. Então vamos começar a fazer o menu passo a passo.
1- Vamos criar uma tabela onde vamos guardar o nome que queremos dar a cada um dos formulários e o nome do formulario que vamos abrir. No exemplo criei a tabela ‘tblmenu’ com os seguintes campos:
Campo Tipo
Nomedomenu texto -> Nome que vai ser visto no menu (caixa de combinação)
formulario texto -> Nome do formulário que vai abrir
Depois introduzimos os dados que no exemplo são os seguintes:
NomedoMenu Formulario
Contas formulario1
Depósitos formulario2
Movimentos formulario3
Conta-Caixa formulario4
Conta-Conta formulario5
Extracto formulario6
2- Depois vamos criar uma consulta da tabela anterior:
Escolhemos a tabela tblmenu e depois escolhemos os dois campos em que escolhemos a ordenação ascendente para o nomedomenu para ser mais fácil de encontrar o menu que queremos quando tempos bastantes formulários para abrir. A esta consulta dei o nome de ‘CsMenu’.
3- Vamos criar o formulário ‘Menu’, ou seja escolhemos novo formulário em vista de estrutura. Depois vamos criar uma caixa de combinação e modificar as seguintes propriedades:
- Nº de colunas: 2
- LArgura das colunas: 1cm;0cm;
- origem da linha: csmenu ( que é o nome da consulta criada no ponto anterior )
4- No mesmo formulário vamos criar um subformulário desvinculado do formulário principal(No exemplo dei o nome de menuquadro). É neste formulário que vai ser aberto cada um dos formulários que escolher no menu (caixa de combinação).
5- Agora vamos criar o módulo que nos vai permitir abrir o menu que é selecionado na caixa de combinação no subformulário.
Criamos um módulo (ao qual eu chamei de ‘abrirmenu’) e colamos o seguinte código:
Public Function AtivarMenu(Combmenu As ComboBox, subabrir As SubForm)
Dim abrirform As String
abrirform = Combmenu.Column(1)
subabrir.SourceObject = abrirform
subabrir.LinkChildFields = “”
subabrir.LinkMasterFields = “”
End Function
Depois vamos às propriedades da caixa de combinação no formulário Menu e no evento Depois de Actualizar colocamos a função criada: =ativarmenu([Menu];[menuquadro]) em que ‘Menu’ é o nome da caixa de combinação e ‘menuquadro’ o nome do subformulário.
E finalmente o menu está pronto a utilizar. É só testar e usar. Espero que tenham gostado desta dica.
Download: Menu
Abaixo uma imagem do menu.


Coloquei um botão CANCELAR no formulário2 e gostaria que ao clicar, o SubForm voltasse para posição original, ou seja, ficasse em branco e com a combo vazia também. Como construir essa Function?
Grato,
Pedro
Olá Pedro,
Não entendi bem o que pretende fazer. Pelo que percebi quer por um botão no subformulário que faça com que o menu retorne ao estado inicial, é isso?
É isso mesmo! No cancelamento da operação, o subformulário voltaria ao estado inicial, bem como a combo.
Grato.
è possível, fazer este menu, porém utilizando as teclas de atalho conforme o menu anterior.
boas consegui fazer o menu seguindo os passos aqui descritos, porem os meus formularios tem caixas de combinação inter ligadas e nos formularios funcionam mas quando passo para os formulariomenu, deixam de funcionar. que posso fazer?
nao sei como perguntar mais eu queria saber como faz
para faser um proama executavel no access que poelomenos trabale com horas e preço