Quando desenvolvemos uma aplicação de pequeno porte, geralmente lidamos com poucas telas, visto que em uma única tela pode-se gerenciar diversas funções do sistema. Porém há ocasiões em que gerenciar um grande número de telas torna-se um problema. Para contornar esta situação podemos utilizar soluções que permitam maior controle sobre as telas, redução de tempo do desenvolvimento e, porque não, economia de código-fonte.
Caso:
Certa vez, ao testar um programa qualquer, percebi que estava com 4 formulários abertos para executar uma operação no sistema. Além de poluir a tela do computador, eram botões a mais na barra de tarefas e eu ainda teria o terrível trabalho de fechar uma a uma ao terminar a operação que eu estava fazendo.
No Microsoft Access podemos implementar uma solução bem simples para esta questão da gerencia de telas.
Podemos criar um menu (utilizado uma Caixa de Combinação) que contenha a lista de todas as telas do sistema. Ao selecionarmos uma opção do menu, a tela é exibida dentro de um subform. Este subform deve estar no formulário principal do sistema. A partir dele podemos ter acesso a todos os outros. Para podermos gerenciar melhor este menu vamos criar uma tabela para ele. No meu exemplo chamarei de tbMenu:
Figura 1: Tabela tbMenu temos os campos: ItemDoMenu e Formulario.
ItemDoMenu: Digite o texto que aparecerá no menu do sistema.
Formulario: Digite o nome do formulário que deve ser disparado.
Crie uma consulta da tabela tbMenu:
Figura 2: Neste exemplo eu dei o nome de csMenu.
No formulário padrão do seu sistema, insira uma Caixa de Combinação e modifique as seguintes propriedades:
Na guia Formato:
- Número de Colunas: 2
- Largura das Colunas:
1cm;0cm
Na guia Dados:
- Origem da linha: csMenu (nome da consulta que você criou
anteriomente).
Figura 3: Esta Caixa de Combinação será o
menu do sistema.
Insira um SubFormulario desacoplado no seu formulário principal. Neste formulário será carregado o formulário que for chamado quando você selecionar um ítem do menu.
Figura 4: Este SubFormulario servirá como um "Frame" para
telas do seu sistema.
Agora crie um Módulo chamado "Funcoes" e nele digite a função conforme abaixo:
Public Function AtivarMenu(Menu As ComboBox, Quadro As SubForm)
Dim Tela As String
Tela = Menu.Column(1)
Quadro.SourceObject = Tela
Quadro.LinkChildFields = ""
Quadro.LinkMasterFields = ""
End Function
Volte ao formulário principal e abra as propriedades da Caixa de Combinação.
Na guia Eventos, na propriedades Apos Atualizar, aponte para a função que foi criada.
Nos parâmetros da função, digite o nome da Caixa de Combinação e o nome do Subformulario:
Figura 5.
Salve o Módulo e os Formulários.
Agora o menu do seu sistema está funcionando e você pode abrir qualquer tela a partir da tela principal do seu sistema.
Informações importantes:
- O Subformulário que fica no form principal deve ter um tamanho padrão: As dimensões dele servirão de referência para as dimensões dos outros formulários do sistema. - Padronize as cores e o estilo dos formulários: Utilize as mesmas cores, tipos de letra e crie um padrão de estilo para seus formulários. Na imagem abaixo, você pode ver um sistema, ao qual eu apliquei esta solução:
Figura 6: Nesta imagem foi
selecionado o ítem "Cadastro de Fornecedores" no
menu do sistema.
Figura 7: Nesta imagem foi selecionado
o ítem "Registro de Comandas" no menu do sistema.
As figuras 6 e 7 mostram perfeitamente o resultado desta solução que mostrei para vocês esta semana. A partir do formulário principal pode-se ter acesso às demais telas do sistema.
Espero que vocês tenham gostado da dica. Até a próxima.




















38 Comentários
Qual a sua opinião?