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.

Menu Personalizado

Menu Personalizado

  • Pedro

    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?

    • Pedro

      É isso mesmo! No cancelamento da operação, o subformulário voltaria ao estado inicial, bem como a combo.

      Grato.

  • Nixon

    è possível, fazer este menu, porém utilizando as teclas de atalho conforme o menu anterior.

  • bruno pontes

    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?

  • andeson

    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

  • Bruno

    Cara Show de Bola, só gostaria de um exemplo ou alguma dica que fosse com botões ao invés de uma combo.

    abraço

  • Bruno

    Cara como fazer o mesmo só que ao invéz de combo com botões?

  • LOEMIR NASCIMENTO

    PRECISO DE UMA AJUDA: FIZ UM SISTEMA DE BANCO DE DADOS NO ACCESS E PRECISAVA DE QUANDO SELECIONASSE UMA DETERMINADA PESSOA NA CAIXA DE VERIFICAÇÃO NO FORMULÁRIO, ABRISSE A FOTO CORRESPONDENTE.

  • Agnaldo

    O amigão gostei de mais dessa dica,mas eu nao consegui exito…poderia me mandar passo a passo?eu nao entendo muito de access mas tenho força de vontade se puder me ajudar nisso ai ficaria agradecido.

  • Agnaldo

    Minha duvida esta aqui,como posso salvar um formulario com dois nomes distintos?

    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).

  • Olá,

    Achei fantástico seu menu, apenas gostaria de abrir relatórios também e quando coloquei o nome do relatório no meu não funcionou, poderia dar uma dica?

    abs,

    Claudio

  • Rose

    Bom dia Claudio,

    Eu estou com o mesmo problema.
    Você conseguiu resolver?

  • CANAL TUTOs

    nao estou conseguindo baixar esse exemplo