AS EMPRESAS ESTÃO "DESESPERADAS" POR ESTE TIPO DE PROFISSIONAL... - VOCÊ É UM DELES?

MEGA FORMAÇÃO EM INFRAESTRUTURA DE TI - O Conhecimento que Vira Dinheiro - CLIQUE AQUI

Você está em: PrincipalArtigosSérie "Como Fazer": Menus no Access › Lições : 06
Quer receber novidades e e-books gratuitos?
« Anterior Δ Página principal ¤ Índice Próxima »
Criando menus, barras de comando e botões personalizados no Access usando VBA
Autor: Robert Friedrick Martim
Lição 005 - Posicionando os objetos

Uma questão que devemos responder é: onde devemos colocar nosso menu? Via de regra, nós criamos menus para facilitar o trabalho e acesso do usuário a certos comandos, automações ou funções que criamos. Portanto, não adianta criar um menu do tipo msoControlPopup nos cantos pois o acesso ao menu ficará “estranho”. Geralmente barras de comando são colocadas no topo utilizando-se o msoBarTop. Um outro método bastante utilizado é criar um menu personalizado na barra de comando contendo os menus do Access.

Nesta parte faremos exatamente isso. Estaremos posicionando o nosso menu em diferentes pontos de nossa área de trabalho.

No primeiro exemplo, repetiremos o código desenvolvido anteriormente para adicionar alguns extras. A primeira coisa que desejamos fazer é posicionar a nossa barra de comando. No momento, a barra está para flutuante e iremos colocá-la no lado esquerdo:

Sub criandoMenus()

   'Somente as partes novas serão repetidas. O resto será suprimido

    Set cmdBar = CommandBars.Add(Name:="Criando Menus", _

               Position:=msoBarLeft) 'Fixa a barra do lado esquerdo

   

    'Protege a barra contra movimentos e redimensionamento

    cmdBar.Protection = msoBarNoMove + msoBarNoResize

    cmdBar.Visible = True 'Exibi a barra de comando cmdBar

  End Sub

O código acima introduz mais uma versatilidade das barras de comando. Muitas vezes não queremos que o usuário fique movimentando as barras de comando, pois isso pode prejudicar o layout geral do aplicativo que desenvolvemos. A maneira como isso é feita é demonstrada acima.

O posicionamento é na lateral esquerda e é fixo. O usuário não pode movimentar ou modificar o tamanho da barra de comando. Outras formas de proteção incluem:

  • msoBarNoChangeDock (não permite acoplar a barra de comando aos cantos do aplicativo)
  • msoBarNoChangeVisible (não permite esconder a barra de comando)
  • msoBarNoCustomize (não permite que o usuário personalize a barra)
  • msoBarNoHorizontalDock (permite acoplar somente na vertical, isto é, nas laterais esquerda e direita do aplicativo)
  • msoBarNoMove (não permite a movimentação da barra)
  • msoBarNoProtection (a barra não possui proteção alguma)
  • msoBarNoResize (não permite o redimensionamento da barra)
  • msoBarNoVerticalDock permite acoplar somente na horizontal, isto é, na parte superior ou inferior do aplicativo. Veja msoBarNoHorizontalDock)

Neste caso específico, estamos lidando com o posicionamento de nossa barra de comando. E o posicionamento de nosso menu? Como podemos posicionar o nosso menu no Access?

Geralmente, quando criamos menus queremos adicioná-los ao menu principal do Access. Porém, é importante saber onde ele será posicionado. Por exemplo, se desejamos posicionar nosso menu antes do menu “Arquivo”, como procedemos? Os menus são indexados o que facilita o nosso trabalho. Como o menu Arquivo é o primeiro, a sua posição é 1. A numeração continua assim até o último menu da barra de comando padrão.

ara posicionar nosso menu no topo, modificaremos o nosso código e dimensão dos objetos ligeiramente:

Sub criandoMenus()

   Dim cmdBar   As CommandBarPopup

   Dim mnu      As CommandBarPopup

   Dim btn      As CommandBarButton

End Sub

 

Como estamos interessados em adicionar um controle tipo menu ao menu principal do Access, precisamos redimensioná-lo para CommandBarPopup. Novamente, precisamos instruir o Access de forma que ele saiba o que fazer com os objetos:

Sub criandoMenus()

   On Error Resume Next 'Continua a execução mesmo que haja um erro

   'Deleta o menu anterior se ele existir

   CommandBars(4).Controls("Criando Menus").Delete

  

   'Position defini a posição onde o menu será inserido

   'Neste caso ele é inserido antes do menu "Arquivo"    

   Set cmdBar = CommandBars(4).Controls.Add(Type:=msoControlPopup, _

    before:=1)

    cmdBar.Caption = "Criando Menus"

   Set btn = cmdBar.Controls.Add(Type:=msoControlButton)

    With btn

      .Caption = "Botão 1"

      .FaceId = 326

    End With

   Set mnu = cmdBar.Controls.Add(Type:=msoControlPopup)

    mnu.Caption = "menu 1" 'Define o nome a ser exibido no menu

    Set btn = mnu.Controls.Add(Type:=msoControlButton)

    With btn

      .Caption = "Botão 2"

      .FaceId = 926

    End With

  End Sub

O resultado:


Figura 5-1

Além de podemos adicionar os menus em qualquer posição do menu padrão do Access, podemos também inserir botões nos próprios menus do Access.

or exemplo, vamos supor que desejamos acrescentar um botão no menu Arquivo antes do botão Novo (o primeiro botão no menu Arquivo). Neste caso, precisamos saber qual o ID do menu em questão. No caso do menu Arquivo o ID é 30002.

Sub criandoMenus()

   Dim mnu     As CommandBarPopup

   

   On Error Resume Next

   Set mnu = CommandBars(4).FindControl(ID:=30002)

   Set btn = mnu.Controls.Add(Type:=msoControlButton, Before:=1)

    With btn

     .Caption = "MEU BOTAO"

     .FaceId = 984

    End With

End Sub


Figura 5-2

Um botão é inserido no menu Arquivo antes do botão Novo. A instrução Before (Antes de) indica onde o botão será inserido. Não existe a opção After (Depois de), pois por analogia tudo que for antes não pode ser depois. Em outras palavras, se nosso botão está antes de algum botão ou ele é o primeiro de tudo ou ele está posicionado depois de algum outro botão e, portanto, antes de algum outro. Quando não definimos, o Access sempre joga o botão no final da lista.

Com o menu criado, precisamos adicionar eventos aos botões. Observe que somente os botões recebem eventos. Barras de comando e menus do tipo popup não executam comandos.

Mais adiante mostrarei como listar tais IDs.

« Anterior Δ Página principal ¤ Índice Próxima »

você conhece a universidade do access?

Universidade do Access - Curso Completo de Access
com tudo para você dominar o Access - do Básico ao
Avançado - até a Criação de Sistemas Profissionais
Completos - Passo a Passo - Tela a Tela

Capa da Universidade do Access

Aplica-se ao Access 2019, 2016, 2013 e 2010!

13 Cursos - 574 Vídeo-Aulas - 63:32 horas

Para todos os detalhes, acesse:

https://juliobattisti.com.br/universidade-do-access.asp

Quer receber novidades e e-books gratuitos?

MEGA FORMAÇÃO EM INFRAESTRUTURA DE TI

(Online, Vitalício, Prático e Atualizado)!

  • Chega de ser Ignorado pelo Mercado!

  • A vida não vai Melhorar Sozinha!

  • Quem domina infraestrutura, domina o Mercado.

  • Com esta Formação você vai Dominar o Conhecimento e torne-se o Profissional que as Empresas estão Buscando, "desesperadamente", mas não estão encontrando.

NÃO PROCURE VAGAS, SEJA PROCURADO!

 

Curso Completo de Excel - Curso Online com Certificado - 925 Vídeo Aulas - 22 Cursos - 120:42 horas

 

Para Todos os Detalhes, Acesse:

Curso Completo de Excel - Curso Online com Certificado - 925 Vídeo Aulas - 22 Cursos - 120:42 horas

 

https://juliobattisti.com.br/curso-infra-ti.asp

 

Contato: Telefone: (51) 3717-3796 | E-mail: webmaster@juliobattisti.com.br | Whatsapp: (51) 99627-3434

Júlio Battisti Livros e Cursos Ltda | CNPJ: 08.916.484/0001-25 | Rua Vereador Ivo Cláudio Weigel, 537 - Universitário, Santa Cruz do Sul/RS, CEP: 96816-208

Todos os direitos reservados, Júlio Battisti 2001-2026 ®

LIVRO: MACROS E PROGRAMAÇÃO VBA NO EXCEL 2016 - CURSO COMPLETO E PRÁTICO

DOMINE A PROGRAMAÇÃO VBA NO EXCEL - 878 PÁGINAS - CLIQUE AQUI