Ao criar um novo banco de dados, normalmente você começa criando vários objetos de banco de dados como tabelas, formulários e relatórios. Em algum momento, você chega a um ponto em que precisa adicionar programação para automatizar certos processos e unir seus objetos de banco de dados. Este artigo ajuda a orientá-lo para as ferramentas de programação no Access.
Neste artigo
O que é programação?
Em Access, a programação é o processo de adicionar funcionalidade ao banco de dados usando macros Access ou código VBA (Visual Basic for Applications). Por exemplo, vamos supor que você tenha criado um formulário e um relatório e queira adicionar um botão de comando ao formulário, de modo que, ao ser clicado, abra o relatório. Programação, nesse caso, é o processo de criar uma macro ou um procedimento de VBA e, depois, configurar a propriedade de evento OnClick do botão de comando para que, ao clicar no botão de comando, a macro ou o procedimento seja executado. Para uma operação simples, como abrir um relatório, você pode usar o Assistente de Botão de Comando para realizar todo o trabalho, ou você pode desativar o assistente e fazer a programação por conta própria.
Observação: Muitos programas do Microsoft Office usam o termo "macro" para se referir ao código VBA. Isso pode ser confuso para Access usuários porque, em Access, o termo "macro" refere-se a uma coleção nomeada de ações de macro que você pode montar usando o Macro Builder. Access ações de macro representam apenas um subconjunto dos comandos disponíveis no VBA. O Construtor de Macros oferece uma interface mais estruturada do que o Editor do Visual Basic, permitindo que você adicione programação a controles e objetos sem precisar aprender o código VBA. Lembre-se de que, em artigos de ajuda Access, Access macros são conhecidas como macros. Por outro lado, o código VBA é chamado de VBA, código, uma função ou um procedimento. O código VBA fica dentro de módulos de classe (que fazem parte de formulários ou relatórios individuais e normalmente contêm código apenas para esses objetos) e de módulos (que não são associados a objetos específicos e normalmente contêm o código "global", que pode ser usado em todo o banco de dados).
Objetos (como formulários e relatórios) e controles (como botões de comando e caixas de texto) têm várias propriedades de evento, às quais você pode anexar macros ou procedimentos. Cada propriedade de evento está associada a um evento específico, como clicar com o mouse, abrir um formulário ou modificar dados em uma caixa de texto. Os eventos também podem ser disparados por fatores fora do Access, como eventos do sistema ou por macros ou procedimentos anexados a outros eventos. O banco de dados pode ficar complexo se você adicionar muitas macros ou procedimentos a várias propriedades de evento de vários objetos, mas, na maioria dos casos, você pode obter os resultados desejados usando pouquíssima programação.
Devo usar macros ou código VBA?
A decisão de usar macros, VBA ou os dois, depende principalmente de como você pretende implantar ou distribuir o banco de dados. Por exemplo, se o banco de dados for armazenado no seu computador e você for o único usuário, e se você se sentir confortável em usar o código VBA, talvez você decida usar VBA para realizar a maioria das suas tarefas de programação. No entanto, se você pretende compartilhar seu banco de dados com outras pessoas colocando-o em um servidor de arquivos, convém evitar o uso de VBA por segurança.
Tome sua decisão de usar macros ou código VBA com base em duas questões: a segurança e funcionalidade desejada. Segurança é um problema porque VBA pode ser usado para criar o código que compromete a segurança dos seus dados ou pode danificar arquivos no seu computador. Ao usar um banco de dados criado por alguém que não seja você, habilite o código VBA somente se você souber que o banco de dados é proveniente de uma fonte confiável. Ao criar um banco de dados que será usado por outras pessoas, tente evitar a inclusão de ferramentas de programação que exijam do usuário a concessão específica do status de confiável ao banco de dados. Veja mais adiante nesta seção técnicas gerais para evitar a necessidade dos usuários confiarem no seu banco de dados.
Para ajudar a garantir a segurança do seu banco de dados, tente usar macros quando for possível e use a programação em VBA apenas para operações que não possam ser realizadas usando ações de macro. Além disso, tente usar apenas as ações de macro que não exijam a concessão do status de confiável ao banco de dados para executar. Limitar o uso de ações de macro dessa maneira permite que os usuários tenham a certeza de que o banco de dados não tem qualquer programação que possa danificar os dados ou outros arquivos nos seus computadores.
Considerações sobre macro
Access contém muitas novas ações de macro que permitem criar macros mais poderosas do que você pode criar usando versões anteriores do Access. Por exemplo, agora você pode criar e usar variáveis temporárias globais usando ações de macro e controlar melhor os erros usando novas ações de macro de tratamento de erros. Em versões anteriores do Access, esses tipos de recursos só estão disponíveis usando o VBA. Além disso, você pode inserir uma macro diretamente na propriedade de evento de um objeto ou controle. Uma macro inserida se torna parte do objeto ou controle e permanecerá com eles se for movida ou copiada.
As macros oferecem uma maneira fácil de lidar com várias tarefas de programação, como abrir e fechar formulários e executar relatórios. Você pode unir com rapidez e facilidade os objetos de banco de dados (formulários, relatórios e assim por diante) criados, pois há pouca sintaxe para memorizar. Os argumentos de cada ação são exibidos no Construtor de Macros.
Além do aumento da segurança e da facilidade de uso oferecidos pelas macros, você deve usar macros para executar as seguintes tarefas:
-
Atribuir uma ação ou conjunto de ações a uma chave. Isso exige a criação de um grupo de macros chamado AutoKeys.
-
Executar uma ação ou uma série de ações quando um banco de dados é aberto pela primeira vez. Isso exige a criação de uma macro chamada AutoExec.
Observação: A macro AutoExec é executada antes de qualquer outra macro ou código VBA, mesmo se você tiver indicado um formulário de inicialização na caixa de diálogo Opções do Access e anexado uma macro ou código VBA ao evento OnOpen ou OnLoad desse formulário.
Saiba mais sobre como criar macros na seção Entender as macros.
Considerações sobre VBA
Você deverá usar a programação VBA em vez de macros se quiser realizar um destes procedimentos:
-
Use funções internas ou crie suas próprias funções Access inclui muitas funções internas, como a função IPmt , que calcula um pagamento de juros. Use essas funções internas para executar cálculos sem precisar criar expressões complicadas. Usando o código VBA, você também pode criar suas próprias funções para executar cálculos que excedem a capacidade de uma expressão ou para substituir expressões complexas. Além disso, você pode usar as funções que criou nas expressões para aplicar uma operação comuns a mais de um objeto.
-
Criar ou manipular objetos Na maioria dos casos, será mais fácil criar e modificar um objeto no modo de Design desse objeto. No entanto, em algumas situações, convém manipular a definição de um objeto no código. Com o VBA, você pode manipular todos os objetos em um banco de dados, além do próprio banco de dados.
-
Executar ações no nível do sistema Você pode executar a ação RunApp em uma macro para executar outro programa (como o Microsoft Excel) de dentro de Access, mas não pode usar uma macro para fazer muito mais fora do Access. Com o VBA, você pode verificar se existe um arquivo no computador, usar a Automação ou DDE (troca dinâmica de dados) para se comunicar com outros programas baseados no Microsoft Windows, como o Excel, e chamar funções em DLLs (Bibliotecas de vínculo dinâmico) do Windows.
-
Manipular um registro por vez Use VBA para percorrer um conjunto de registros, um registro por vez, e executar uma operação em cada registro. Por outro lado, macros trabalham com conjuntos inteiros de registros de uma só vez.
Usar o Assistente de Botão de Comando para executar tarefas comuns de programação
Se você estiver adicionando um botão de comando a um formulário, o Assistente de Botão de Comando poderá ajudar você a começar com a programação. O assistente ajuda a criar um botão de comando que realiza uma tarefa específica. Em um arquivo Access (.accdb), o assistente cria uma macro inserida na propriedade OnClick do botão de comando. Em um arquivo .mdb ou .adp, o assistente cria um código VBA, pois as macros inseridas não estão disponíveis nesses formatos de arquivo. Em ambos os casos, modifique ou melhore a macro ou o código VBA a fim de atender melhor às suas necessidades.
-
No Painel de Navegação, clique com o botão direito no formulário ao qual você deseja adicionar o botão de comando e clique no Modo de Exibição Design.
-
Na guia Design de Formulários , clique na seta para baixo para exibir a galeria Controles e, em seguida, verifique se os Assistentes de Controle de Uso estão selecionados.
-
Na guia Design de Formulários , na galeria Controles , clique em Botão.
-
Na grade de design de formulário, clique no local onde você quer que o botão de comando seja colocado.
O Assistente de Botão de Comando é iniciado.
-
Na primeira página do assistente, clique em cada categoria na lista de Categorias para ver quais ações o assistente pode programar para execução do botão de comando. Na lista Ações, selecione a ação desejada e clique em Avançar.
-
Clique na opção Texto ou na opção Imagem, dependendo se você deseja exibir texto ou imagem no botão de comando.
-
Se quiser exibir texto, edite o texto na caixa ao lado da opção Texto.
-
Se quiser exibir imagem, o assistente sugerirá uma imagem na lista. Se você quiser selecionar uma imagem diferente, selecione a caixa de seleção Mostrar Todas as Imagens para exibir uma lista de todas as imagens de botão de comando que Access fornece ou clique em Procurar para selecionar uma imagem armazenada em outro lugar.
Clique em Avançar.
-
-
Insira um nome significativo para o botão de comando. Esta é uma etapa opcional e esse nome não é exibido no botão de comando. No entanto, é uma boa ideia inserir um nome significativo para que, quando você precisar se referir ao botão de comando mais tarde (por exemplo, se você estiver definindo a ordem de guia para controles em seu formulário), será muito mais fácil diferenciar entre os botões de comando. Se o botão de comando fechar o formulário, por exemplo, você poderá nomeá-lo cmdClose ou CommandClose.
-
Clique em Concluir.
Access coloca o botão de comando no formulário.
-
Se você quiser ver o que o assistente "programou" para você, execute estas etapas opcionais:
-
Se a Folha de Propriedades não for exibida, pressione F4 para exibi-la.
-
Clique na guia Evento na folha de propriedades.
-
Na caixa de propriedade Clicar , clique no botão Criar .
Access inicia o Construtor de Macros e apresenta a macro que o assistente criou. Você pode editar a macro se quiser (para saber mais sobre como editar uma macro, confira a seção Entender as macros). Quando tiver terminado, no separador Estrutura da Macro , no grupo Fechar , clique em Fechar para fechar o Construtor de Macros. Se Access lhe pedir para guardar as alterações e atualizar a propriedade, clique em Sim para guardar as alterações ou em Não para rejeitar as alterações.
-
-
No separador Estrutura do Formulário , no grupo Vistas , clique em Ver e, em seguida, clique em Vista formulário. Clique no novo botão de comando para confirmar o funcionamento esperado.
Entender as macros
Uma macro é uma ferramenta que permite automatizar tarefas e adicionar funcionalidade a formulários, relatórios e controles. Por exemplo, se você adicionar um botão de comando a um formulário, associará o evento OnClick do botão a uma macro que conterá os comandos para execução do botão sempre que ele for clicado.
É útil considerar Access macros como uma linguagem de programação simplificada na qual cria código ao criar uma lista de ações a executar. Ao criar uma macro, você seleciona cada ação em uma lista suspensa e, depois, preenche as informações necessárias para cada ação. As macros permitem adicionar funcionalidade a formulários, relatórios e controles sem escrever códigos em um módulo do VBA. As macros oferecem um subconjunto dos comandos disponíveis no VBA, e a maioria das pessoas considera mais fácil criar uma macro do que escrever código VBA.
Crie uma macro usando o Construtor de Macros, mostrado na ilustração a seguir.
Para exibir o Construtor de Macros:
-
Na guia Criar, no grupo Macros e Código, clique em Macro.
Entender o código VBA
Tal como as macros, o VBA permite-lhe adicionar automatização e outras funcionalidades à sua aplicação Access. Você pode estender o VBA usando controles de terceiros e gravar suas próprias funções e procedimentos de acordo com suas necessidades específicas.
Uma forma rápida de começar a utilizar a programação VBA é criar primeiro uma macro Access e, em seguida, convertê-la em código VBA. As instruções para fazer isso estão incluídas na seção Converter macros em código VBA. Esse recurso cria um novo módulo de VBA que executa as operações equivalentes na macro. Também abre o Editor do Visual Basic para que você possa começar modificando o procedimento. Quando estiver a trabalhar no Visual Basic Editor, pode clicar em palavras-chave e premir F1 para iniciar Access Ajuda para Programadores e saber mais sobre cada palavra-chave. Em seguida, pode explorar Access Ajuda para Programadores e descobrir novos comandos para o ajudar a realizar as tarefas de programação que pretende.
Converter macros em código VBA
Pode utilizar Access para converter automaticamente macros em módulos VBA ou módulos de classe. Você pode converter as macros associadas a um formulário ou relatório, quer elas existam como objetos separados ou macros inseridas. Você também pode converter as macros globais que não estão anexadas a um formulário ou relatório específico.
Converter macros anexadas a um formulário ou relatório
Esse processo converte em VBA todas as macros referenciadas por (ou inseridas em) um formulário ou relatório (ou qualquer um de seus controles) e adiciona o código VBA ao formulário ou módulo de classe do relatório. O módulo de classe se torna parte do formulário ou relatório e acompanha o formulário ou relatório se ela for movido ou copiado.
-
No Painel de Navegação, clique com o botão direito do mouse no formulário ou relatório e clique em Modo Design.
-
No separador Estrutura do Formulário , no grupo Ferramentas , clique em Converter Macros do Formulário para Visual Basic ou Converter Macros do Relatório para Visual Basic.
-
Na caixa de diálogo Converter macros de formulário ou Converter macros de relatório , selecione se pretende Access adicionar código de processamento de erros às funções geradas. Além disso, se você tiver qualquer comentário em suas macros, selecione se deseja incluí-los como comentários nas funções. Clique em Converter para continuar.
Se não existir nenhum módulo de classe para o formulário ou relatório, Access cria um e adiciona um procedimento ao módulo para cada macro associada ao formulário ou relatório. Access também altera as propriedades do evento do formulário ou relatório para que executem os novos procedimentos VBA em vez das macros.
-
Para exibir e editar o código VBA:
-
Com o formulário ou relatório ainda aberto no modo Design, se a folha de propriedades ainda não estiver sendo exibida, pressione F4 para exibi-la.
-
No separador Evento da folha de propriedades, clique em qualquer caixa de propriedade que apresente [Procedimento de Evento] e, em seguida, clique no botão de criação . Para exibir as propriedades de evento de um controle específico, clique no controle para selecioná-lo. Para exibir as propriedades de evento de todo o formulário ou relatório, selecione Formulário ou Relatório na lista suspensa na parte superior da folha de propriedades.
Access abre o Visual Basic Editor e apresenta o procedimento de evento no módulo de classe. Você pode rolar para cima ou para baixo a fim de ver outros procedimentos que estão no mesmo módulo de classe.
-
Converter macros globais
-
No Painel de Navegação, clique com o botão direito do mouse na macro que você deseja converter e clique em Modo Design.
-
No separador Estrutura da Macro , no grupo Ferramentas , clique em Converter Macros para Visual Basic.
-
Na caixa de diálogo Converter Macro, selecione as opções desejadas e clique em Converter.
Access converte a macro e abre o Visual Basic Editor.
-
Para exibir e editar o código VBA:
-
No Editor do Visual Basic, se o painel do Explorador de Projetos não for exibido, no menu Exibir, clique em Explorador de Projetos.
-
Expanda a árvore sob o nome do banco de dados no qual você está trabalhando.
-
Em Módulos, clique duas vezes no módulo Macro Convertida– nome da macro.
O Editor do Visual Basic abre o módulo.
-
Anexar uma função VBA a uma propriedade de evento
Ao converter uma macro global em VBA, código VBA é colocado em um módulo padrão. Diferentemente de um módulo de classe, um módulo padrão não faz parte de um formulário ou relatório. Provavelmente você vai querer associar a função a uma propriedade de evento em um formulário, relatório ou controle para que o código seja executado exatamente quando e onde você quiser. Para fazer isso, você pode copiar o código VBA para um módulo de classe e associá-lo a uma propriedade de evento, ou pode fazer uma chamada especial da propriedade de evento para o módulo padrão usando o procedimento a seguir.
-
No Editor do Visual Basic, anote o nome da função. Por exemplo, se você converteu uma macro chamada MyMacro, o nome da função será MyMacro().
-
Feche o Editor do Visual Basic.
-
No Painel de Navegação, clique com o botão direito do mouse no formulário ou relatório com o qual você deseja associar a função e clique em Modo Design.
-
Clique no controle ou seção com o qual você deseja associar a função.
-
Se a Folha de Propriedades não for exibida, pressione F4 para exibi-la.
-
Na guia Evento da folha de propriedades, clique na caixa da propriedade de evento com a qual você deseja associar a função.
-
Na caixa da propriedade, digite um sinal de igual (=) seguido pelo nome da função, por exemplo, =MyMacro(). Inclua os parênteses.
-
Salve o formulário ou relatório clicando em Salvar na Barra de Ferramentas de Acesso Rápido.
-
No Painel de Navegação, clique duas vezes no formulário ou relatório e teste para ver se o código é executado como deveria.
Agora você conhece as etapas básicas para adicionar o código VBA ao seu banco de dados. Este artigo descreve somente as noções básicas para começar; há muitos livros de referência e recursos online excelentes que podem ajudar você a desenvolver suas qualificações em programação.
Confira também
Criar uma macro de interface do usuário
Executar uma macro do Access usando um atalho de teclado
Automatizar eventos de arranque com uma macro
Criar uma macro que é executada quando você abre um banco de dados