Ao criar um novo banco de dados, você geralmente começa criando objetos de banco de dados, como tabelas, formulários e relatórios. Em algum momento, talvez seja necessário adicionar programação para automatizar processos e conectar esses objetos. Este artigo apresenta as 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, a programação significa adicionar funcionalidade ao banco de dados usando macros do Access ou Visual Basic for Applications (VBA). Por exemplo, você pode criar um formulário e um relatório e, em seguida, adicionar um botão de comando ao formulário que abre o relatório ao selecioná-lo. Nesse caso, você cria uma macro ou VBA procedimento e, em seguida, define a propriedade de evento do botão de OnClick comando para que o botão de comando execute a macro ou procedimento. Para uma operação simples, como abrir um relatório, você pode usar o Assistente de Botão de Comando para fazer o trabalho ou desativar o assistente e programá-lo por conta própria.
Observação
Muitos programas do Microsoft Office usam o termo "macro" para se referir ao VBA código. Isso pode confundir os usuários do Access porque, no Access, o termo "macro" refere-se a uma coleção nomeada de ações de macro que você monta usando o Macro Builder. As ações de macro de acesso representam apenas um subconjunto dos comandos disponíveis em VBA. O Construtor de Macros oferece uma interface mais estruturada do que o Editor do Visual Basic, para que você possa adicionar programação a controles e objetos sem código de aprendizagem VBA . Nos artigos do Access Help, as macros de acesso são chamadas de macros.
VBA o código é chamado VBA de código, uma função ou um procedimento.
VBA O código é armazenado em módulos de classe, que fazem parte de formulários ou relatórios individuais e geralmente contêm código apenas para esses objetos e em módulos, que não estão vinculados a objetos específicos e geralmente contêm código global que você pode usar 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 propriedades de evento às quais você pode anexar macros ou procedimentos. Cada propriedade de evento está associada a um evento específico, como clicar no mouse, abrir um formulário ou alterar dados em uma caixa de texto. Eventos também podem ser disparados por fatores fora do Access, como eventos do sistema, ou por macros ou procedimentos anexados a outros eventos. Seu banco de dados pode se tornar complexo se você adicionar muitas macros ou procedimentos a muitas propriedades de evento em muitos objetos. Na maioria dos casos, porém, você pode obter os resultados desejados usando muito pouca programação.
Devo usar macros ou código VBA?
A decisão de usar macros, VBAou ambos depende principalmente de como você planeja implantar ou distribuir o banco de dados. Por exemplo, se o banco de dados for armazenado em seu computador, você será o único usuário e estiver confortável usando VBA o código, poderá decidir usar para a maioria das VBA tarefas de programação. No entanto, se você planeja compartilhar seu banco de dados com outras pessoas de um servidor de arquivos, talvez queira evitar o uso VBA devido a preocupações de segurança.
Baseie sua decisão de usar macros ou VBA código em duas preocupações: segurança e a funcionalidade desejada. A segurança importa porque VBA pode ser usada para criar um código que comprometa seus dados ou prejudique arquivos em seu computador. Quando você usa um banco de dados criado por outra pessoa, habilite o código somente se você souber VBA que o banco de dados vem de uma fonte confiável. Ao criar um banco de dados que outras pessoas usarão, tente evitar incluir ferramentas de programação que exigem que o usuário confie explicitamente no banco de dados. Técnicas gerais para evitar esse requisito aparecem posteriormente nesta seção.
Para ajudar a proteger seu banco de dados, tente usar macros quando puder e use VBA apenas para operações que não podem ser executadas usando ações de macro. Além disso, tente usar apenas ações de macro que não exigem que o banco de dados seja confiável antes que eles possam ser executados. Limitar ações de macro dessa forma ajuda os usuários a se sentirem confiantes de que o banco de dados não tem programação que possa prejudicar dados ou outros arquivos em seus computadores.
Considerações sobre macro
O Access contém muitas ações de macro que permitem criar macros mais poderosas do que as versões anteriores do Access permitidas. 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 recursos estavam disponíveis apenas em VBA. Você também pode inserir uma macro diretamente na propriedade de evento de um objeto ou controle. Uma macro inserida torna-se parte do objeto ou controle e permanece com ela se o objeto ou controle for movido ou copiado.
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 rapidamente os objetos de banco de dados, como formulários e relatórios, que você criou porque há pouca sintaxe a ser lembrada. 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 requer 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 requer a criação de uma macro chamada
AutoExec.Observação
A
AutoExecmacro é executada antes de qualquer outra macro ouVBAcódigo, mesmo se você designou um formulário de inicialização na caixa de diálogo Opções de Acesso e anexou uma macro ouVBAcódigo a esse formulárioOnOpenouOnLoadevento.
Para obter mais informações sobre como criar macros, consulte Entender macros.
Considerações sobre VBA
Use VBA em vez de macros se quiser fazer qualquer um dos seguintes procedimentos:
- Use funções internas ou crie suas próprias. O acesso inclui várias funções internas, como
IPmt, que calcula um pagamento de juros. Você pode usar essas funções para executar cálculos sem criar expressões complicadas.VBAUsando , você também pode criar suas próprias funções para executar cálculos que vão além da 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, é mais fácil criar e modificar um objeto na exibição Design desse objeto. Em algumas situações, porém, talvez você queira manipular a definição de um objeto no código.
VBAUsando , você pode manipular todos os objetos em um banco de dados, bem como o próprio banco de dados. - Execute ações no nível do sistema. Você pode executar a ação
RunAppem uma macro para executar outro programa, como o Microsoft Excel, de dentro do Access, mas não pode usar uma macro para fazer muito mais fora do Access.VBAUsando , você pode marcar se existe um arquivo no computador, usar Automação ou Exchange de Dados Dinâmicos (DDE) para se comunicar com outros programas baseados no Microsoft Windows, como o Excel, e chamar funções em bibliotecas de link dinâmico do Windows (DLLs). - Manipular registros um de cada vez. Você pode usar
VBApara passar por um conjunto de registros um registro por vez e executar uma operação em cada registro. Por outro lado, as macros funcionam com conjuntos inteiros de registros ao mesmo tempo.
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 que está inserida na OnClick propriedade do botão de comando. Em um .mdb ou .adp arquivo, o assistente cria VBA código porque as macros inseridas não estão disponíveis nesses formatos de arquivo. Em ambos os casos, você pode modificar ou aprimorar a macro ou VBA o código para melhor atender à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 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.
Insira um nome significativo para o botão de comando. Essa 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, como quando você estiver definindo a ordem de guia para controles em seu formulário, será muito mais fácil diferenciar os botões de comando. Se o botão de comando fechar o formulário, por exemplo, você poderá nomeá-lo
cmdCloseouCommandClose.Clique em Concluir. O Access coloca o botão de comando no formulário.
Se você quiser ver o que o assistente programou para você, siga estas etapas opcionais:
Se a folha de propriedades ainda não estiver exibida, pressione F4 para exibi-la.
Clique na guia Evento na folha de propriedades.
Na caixa de propriedade Clicar , clique no botão Compilar .
O Access inicia o Construtor de Macros e exibe a macro criada pelo assistente. Você pode editar a macro se desejar. Para obter mais informações, consulte Entender macros. Quando terminar, na guia Design de Macro , 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.
Na guia Design de Formulários , no grupo Exibições , clique em Exibir e clique em Modo de Exibição. 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 aos seus formulários, relatórios e controles. Por exemplo, se você adicionar um botão de comando a um formulário, poderá associar a propriedade de evento do OnClick botão a uma macro que contém os comandos que deseja que o botão execute sempre que ele for selecionado.
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 gravar código em um VBA módulo. As macros fornecem um subconjunto dos comandos que estão disponíveis em VBA, e a maioria das pessoas acha mais fácil criar uma macro do que gravar VBA código.
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
Como macros, VBA permite adicionar automação e outras funcionalidades ao aplicativo Access. Você pode estender VBA usando controles de terceiros e escrever suas próprias funções e procedimentos para necessidades específicas.
Uma maneira rápida de começar a usar VBA é primeiro criar uma macro do Access e convertê-la em VBA código. As instruções para fazer isso estão incluídas no código Converter macros em VBA. Esse recurso cria um novo VBA módulo 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 trabalhando no Editor do Visual Basic, clique em palavras-chave e pressione F1 para iniciar o Access Developer Help 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.
Converter macros em código VBA
Você pode usar o Access para converter macros automaticamente em VBA módulos 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 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 se converte em VBA todas as macros que são referidas por ou inseridas em um formulário ou relatório ou qualquer um de seus controles e adiciona o VBA código ao formulário ou ao 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 no relatório e clique em Exibição de Design.
Na guia Design de Formulários , no grupo Ferramentas , clique em Converter Macros do Formulário em Visual Basic ou Converter Macros do Relatório no Visual Basic.
Na caixa de diálogo Converter macros de formulário ou Converter macros de relatório , selecione se deseja que o Access adicione o código de tratamento de erros às funções geradas. Se suas macros incluirem comentários, selecione também se você deseja que esses comentários sejam incluídos 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 do evento do formulário ou relatório para que eles executem os novos
VBAprocedimentos em vez das macros.Para exibir e editar o
VBAcódigo:Enquanto o formulário ou relatório ainda estiver aberto no modo Design, se a folha de propriedades ainda não estiver exibida, pressione F4 para exibi-lo.
Na guia Evento da folha de propriedades, clique em qualquer caixa de propriedade que exibe
[Event Procedure]e clique no botão Compilar . 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
No Painel de Navegação, clique com o botão direito do mouse na macro que você deseja converter e clique em Modo Design.
Na guia Design de Macro , no grupo Ferramentas , clique em Converter Macros em Visual Basic.
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.
Para exibir e editar o
VBAcódigo:- 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
Converted Macro-<macro name>módulo. O Editor do Visual Basic abre o módulo.
Anexar uma função VBA a uma propriedade de evento
Quando você converte uma macro global em VBA, o VBA código é 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 VBA código em um módulo de classe e associá-lo a uma propriedade de evento ou fazer uma chamada especial da propriedade do 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 no relatório com o qual você deseja associar a função e clique em Design View.
- Clique no controle ou seção com o qual você deseja associar a função.
- Se a folha de propriedades ainda não estiver 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 de propriedade, digite um sinal 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ê sabe as etapas básicas para adicionar VBA código ao banco de dados. Este artigo descreve apenas os conceitos básicos de como começar. Muitos excelentes livros de referência e recursos online podem ajudá-lo a criar suas habilidades de 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 inicialização com uma macro
Criar uma macro que é executada quando você abre um banco de dados