Introdução à programação do Access

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 orientar você pelas ferramentas de programação no Access.

Neste artigo

O que é programação?

Devo usar macros ou código VBA?

Usar o Assistente de Botão de Comando para executar tarefas comuns de programação

Entender as macros

Entender o código VBA

Converter macros em código VBA

O que é programação?

No Access, programação é o processo de adição de funcionalidade ao seu banco de dados usando macros do 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 usuários do Access, pois nele o termo "macro" refere-se a um conjunto nomeado de ações de macro que você pode reunir usando o Construtor de Macros. As ações de macro do Access 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 nos artigos da Ajuda do Access, as macros dele são chamadas de 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 que estão 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.

Início da Página

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

A partir do Access 2010, o programa contém muitas ações de macro novas que permitem criar macros mais avançadas em comparação com versões anteriores. 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 estão disponíveis apenas 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    O Access inclui muitas funções internas, como a função IPmt que calcula o 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) no Access, mas não pode usar uma macro para fazer muito mais do que isso 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.

Início da Página

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

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

  2. Na guia Design, clique na seta para baixo para exibir a galeria Controles e verifique se a opção Usar Assistentes de Controle está selecionada.

  3. Na guia Design, na galeria Controles, clique em Botão.

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

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

  6. 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 quiser selecionar uma imagem diferente, marque a caixa de seleção Mostrar Todas as Imagens para exibir uma lista de todas as imagens de botão de comando fornecidas pelo Access ou clique em Procurar para selecionar uma imagem armazenada em outro lugar.

      Clique em Avançar.

  7. Insira um nome significativo para o botão de comando. Essa é uma etapa opcional, e esse nome não é exibido no botão de comando. No entanto, convém inserir um nome significativo. Quando você precisar consultar o botão de comando mais tarde (por exemplo, se você estiver definindo a ordem das guias para os controles em seu formulário), será muito mais fácil distinguir os botões de comando. Se o botão de comando fecha o formulário, por exemplo, você pode nomeá-lo cmdClose ou CommandClose.

  8. Clique em Concluir.

    O Access coloca o botão de comando no formulário.

  9. Se você quiser ver o que o assistente "programou" para você, execute estas etapas opcionais:

    1. Se a Folha de Propriedades não for exibida, pressione F4 para exibi-la.

    2. Clique na guia Evento na folha de propriedades.

    3. Na caixa da propriedade On Click, clique no botão Criar Imagem do botão .

      O Access inicia o Construtor de Macros e exibe a macro criada pelo assistente. Você pode editar a macro se quiser (para saber mais sobre como editar uma macro, confira a seção Entender as macros). Depois de terminar, na guia Design, no grupo Fechar, clique em Fechar para fechar o Construtor de Macros. Se o Access solicitar que você salve as alterações e atualize a propriedade, clique em Sim para salvar as alterações ou em Não para rejeitar as alterações.

  10. Na guia Design, no grupo Modos de Exibição, clique em Exibir e em Modo Formulário. Clique no novo botão de comando para confirmar o funcionamento esperado.

Início da Página

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.

Ajuda pensar em macros do Access como uma linguagem de programação simplificada na qual você cria código criando uma lista de ações a serem executadas. 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.

O Construtor de Macros do Access 2010

Observação : Observe que o Construtor de Macros no Access 2007 era diferente da ilustração acima. No Access 2007, o Construtor de Macros era uma série de linhas e colunas que listavam várias ações da sua macro.

Para exibir o Construtor de Macros:

  • Na guia Criar, no grupo Macros e Código, clique em Macro.

Início da Página

Entender o código VBA

Assim como as macros, o VBA permite adicionar automação e outras funcionalidades ao seu aplicativo do 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 maneira rápida de começar com a programação de VBA é criar uma macro do Access e 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 você estiver trabalhando no Editor do Visual Basic, clique nas palavras-chave e pressione F1 para iniciar a Ajuda para Desenvolvedores do Access e saber mais sobre cada palavra-chave. Depois, você pode explorar a Ajuda para Desenvolvedores do Access e descobrir novos comandos para ajudar você a realizar as tarefas programação desejadas.

Início da Página

Converter macros em código VBA

Você pode usar o Access para converter automaticamente as macros em módulos do VBA ou em 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.

Observação : Você pode adicionar o código VBA (Visual Basic for Applications) a um banco de dados da Web. No entanto, você não pode executar esse código enquanto o banco de dados estiver em execução em um navegador da Web. Se o seu banco de dados da Web contiver código VBA, primeiro abra o banco de dados da Web usando o Access antes de executar o código. Para executar tarefas programação em um banco de dados da Web, use macros do Access.

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.

  1. No Painel de Navegação, clique com o botão direito do mouse no formulário ou relatório e clique em Modo Design.

  2. Na guia Design, no grupo Ferramentas, clique em Converter as Macros do Formulário em Visual Basic ou Converter as Macros do Relatório em Visual Basic.

  3. Na caixa de diálogo Converter as macros de formulário ou Converter as macros de relatório, selecione se quer que o Access adicione tratamento de erros às funções que ele gera. 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 nenhum módulo de classe existir para o formulário ou relatório, o Access criará um e adicionará um procedimento ao módulo para cada macro associada ao formulário ou relatório. O Access também altera as propriedades de eventos do formulário ou relatório para que elas executem os novos procedimentos de VBA em vez das macros.

  4. Para exibir e editar o código VBA:

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

    2. Na guia Evento da folha de propriedades, clique em qualquer caixa de propriedade que exiba [Procedimento de Evento] e, em seguida, clique no botão Criar Imagem do botã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.

      O Access abre o Editor do Visual Basic e exibe o procedimento de evento em seu 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

  1. No Painel de Navegação, clique com o botão direito do mouse na macro que você deseja converter e clique em Modo Design.

  2. Na guia Design, no grupo Ferramentas, clique em Converter Macros em Visual Basic.

  3. Na caixa de diálogo Converter Macro, selecione as opções desejadas e clique em Converter.

    O Access converte a macro e abre o Editor do Visual Basic.

  4. Para exibir e editar o código VBA:

    1. No Editor do Visual Basic, se o painel do Explorador de Projetos não for exibido, no menu Exibir, clique em Explorador de Projetos.

    2. Expanda a árvore sob o nome do banco de dados no qual você está trabalhando.

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

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

  2. Feche o Editor do Visual Basic.

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

  4. Clique no controle ou seção com o qual você deseja associar a função.

  5. Se a Folha de Propriedades não for exibida, pressione F4 para exibi-la.

  6. Na guia Evento da folha de propriedades, clique na caixa da propriedade de evento com a qual você deseja associar a função.

  7. Na caixa da propriedade, digite um sinal de igual (=) seguido pelo nome da função, por exemplo, =MyMacro(). Inclua os parênteses.

  8. Salve o formulário ou relatório clicando em Salvar na Barra de Ferramentas de Acesso Rápido.

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

Início da Página

Expanda suas habilidades
Explore o treinamento
Obtenha novos recursos primeiro
Ingressar no Office Insider

Essas informações foram úteis?

Obrigado por seus comentários!

Agradecemos pelos seus comentários! Parece que pode ser útil conectar você a um de nossos agentes de suporte do Office.

×