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 : 07
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 006 - Executando ações e atalhos de teclado

Quando criamos menus queremos executar algo. Não adianta criar algo lindo e ele não funciona. Com os botões temos duas maneiras para executar um comando no botão:

  • OnAction
  • Execute

A diferença entre OnAction e Execute é que OnAction executa um comando que nós mesmos criamos ao passo que Execute executa um comando interno do Access como Imprimir, por exemplo. Porém, o Execute é acionado quando criamos nosso botão, portanto, iremos utilizar o ID do botão interno para executar o comando. Em outras palavras, definiremos o nosso botão de forma que ele faça a mesma coisa quando clicamos no botão de relacionamentos no menu Ferramentas.

rimeiramente, vamos criar o código que montará nosso menu:

Public Const MENUACCESS As String = "Menu Bar"

Sub executandoMenus()

   Dim mnu     As CommandBarPopup

   Dim btn     As CommandBarButton

   

   On Error Resume Next

   CommandBars(MENUACCESS).Controls("Executar comandos").Delete

   Set mnu = CommandBars(MENUACCESS).Controls.Add _

    (Type:=msoControlPopup, before:=1)

    mnu.Caption = "Executar comandos"

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

    With btn

     .Caption = "Exemplo OnAction"

     .FaceId = 1018

     'Mensagem refere-se a macro a ser executada

     .OnAction = "Mensagem"

    End With

 

   'Defini o ID do botão como sendo 523 (Relacionamentos).

   'Quando o botão for clicado o Access carrega

'a caixa de relacionamentos

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

    With btn

     .Caption = "Exemplo Execute"

     .FaceId = 523

     'Este método está comentado, pois utilizaremos

     'o ID 523 para executá-lo

     '.Execute

    End With

End Sub

O nosso menu tem o seguinte aspecto:


Figura 6-1

Os faceID’s ficam a critério do leitor. Mais adiante veremos como personalizar as carinhas dos botões de menu.

Observe que no OnAction nós colocamos o nome da macro a ser executada. Porém, no caso do Execute utilizamos o número referente ao comando que desejamos executar. Como o OnAction necessita de uma macro precisamos acrescentá-la ao nosso projeto. Como exemplo, podemos utilizar a seguinte sub-rotina:

Sub Mensagem()

   MsgBox "Não há nada neste botão que possa ser executado.", _

    vbInformation

End Sub

 

Quando clicamos no primeiro botão ele executa o OnAction e a mensagem é passada para o usuário:


Figura 6-2

Já no segundo botão estamos executando um comando interno do Access com um ID igual a 523:


Figura 6-3

Uma vez que definimos qual é o ID do comando o método Execute torna-se redundante, pois ao clicarmos no botão o comando será executado. Porém, há situações onde queremos que o comando seja executado quando o código é rodado.

Os comandos acima são acessados através de um “clique”, porém, podemos também acrescentar um combinação de teclas para criar um atalho para o nosso botão.

Atalhos são acessados diretamente do teclado e facilitam a execução de comando, pois não precisamos recorrer ao mouse toda vez que desejamos executar tal comando.

O processo é o mesmo que o OnAction. Na verdade, o OnAction é que determina a macro a ser executada. O que precisamos fazer é utilizar a propriedade ShortCutText para criar o Atalho e defini-lo no código.

O procedimento a seguir descreve como adicionar um atalho de teclado ao menu.

Se você possui os módulos sobre o mesmo assunto no Word e Excel aqui você encontrará uma grande diferença. O Access não é direcionado por eventos, portanto, tudo aquilo que é executado é executado dentro do projeto e não no aplicativo. Assim sendo, você não tem a opção Application.MacroOptions como no Excel ou KeyBindings como no Word.

ara se criar teclas de atalho no Access nós precisamos utilizar macros. Porém, como você notará a macro não é a mesma coisa que o código VBA, então, como fazer para adicionar uma tecla de atalho?

rimeiramente, vamos adicionar o menu. Como o atalho não está diretamente relacionado ao código, a forma como criamos o menu continua a mesma. Contudo, adicionaremos o texto indicativo do atalho ao botão que criaremos:

Public Const MENUACCESS As String = "Menu Bar"

Sub mnuAtalho()

    Dim mnu As CommandBarPopup

    Dim btn As CommandBarButton

 

    On Error Resume Next

'   apaga o menu caso ele já exista

    CommandBars(MENUACCESS).Controls(1).Controls _

     ("Abrir Janela Iniciar ").Delete

   

   

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

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

        With btn

'           O ampersand (&) é para indicar a chava do atalho

            .Caption = "Abrir Janela &Iniciar"

            .ShortcutText = "Ctrl+Shift+I"

            .OnAction = "Iniciar"

        End With

End Sub

O botão de menu acima será inserido no menu Arquivo como o primeiro item:


Figura 6-4

O atalho será CTRL+SHIT+I. Antes de adicionarmos o atalho, você precisa saber como representas as teclas acima. A tabela abaixo mostra as teclas e como elas devem ser representadas:

TECLA

Representada por

CONTROL

^

FUNCTION

{F1}

SHIFT

+

No exemplo, desejamos adicionar o atalho CTRL+SHIT+I, portanto, estaremos olhando para a seguinte combinação ^+I. Se por outro lado a combinação fosse CTRL+F2, então, teríamos ^{F2} e assim sucessivamente.

É importante lembrar que certos atalhos podem entrar em conflito com algum atalho do sistema. Atalhos comuns são CTRL+P, CTRL+C, CTRL+Z, etc. Ao utilizar teclas de atalho, assegure-se que elas não entram em conflito com uma tecla já existente.

Com o botão inserido onde desejamos e com as informações acima compreendidas, podemos partir para a criação do atalho.

Abra a janela do banco de dados e vá até o grupo de macros. Crie uma nova macro e dê o nome de AutoKeys, como mostra a figura:


Figura 6-5

Abra a macro em modo de design. Quando a janela de design da macro abrir, clique no menu Exibir e selecione a opção Nomes de macro. É neste novo campo que você deverá inserir as teclas de atalho ^+I. No campo Ação selecione a opção ExecutarCódigo e no campo Nome da função digite Iniciar():


Figura 6-6

Iniciar() refere-se a função abaixo. Esta função irá carregar a janela Inicializar:

Function Iniciar()

    DoCmd.RunCommand acCmdStartupProperties

End Function

Enquanto o seu projeto estiver aberto, sempre que necessitar chamar a janela de inicialização basta pressionar CTRL+SHIFT+I.

Este método pode ser utilizado para qualquer tipo de atalho que você tenha em mente. Lembre-se, porém, se sempre verificar as teclas antes. Se as teclas entram em conflito com as teclas padrões, estas teclas não funcionarão.

Veja mais adianta tópico sobre como listar os ID’s dos menus do Access

« 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