Introdução à programação do Access

Aplica-se A
Access para Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Quando cria uma nova base de dados, normalmente começa por criar objetos de base de dados, como tabelas, formulários e relatórios. A dada altura, poderá ter de adicionar programação para automatizar processos e ligar esses objetos. Este artigo apresenta as ferramentas de programação no Access.

Neste artigo

O que é a programação?

No Access, a programação significa adicionar funcionalidades à sua base de dados através de macros do Access ou Visual Basic for Applications código (VBA). Por exemplo, 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 quando o seleciona. Nesse caso, vai criar uma macro ou VBA procedimento e, em seguida, definir 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, pode utilizar o Assistente de Botões de Comando para fazer o trabalho ou pode desativar o assistente e programá-lo manualmente.

Nota

Muitos programas do Microsoft Office utilizam o termo "macro" para fazer referência ao VBA código. Isto pode confundir os utilizadores do Access porque, no Access, o termo "macro" refere-se a uma coleção nomeada de ações de macro que monta com 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-lhe uma interface mais estruturada do que o Visual Basic Editor, para que possa adicionar programação a controlos e objetos sem código de aprendizagem VBA . Nos artigos da Ajuda do Access, as macros do Access são denominadas macros. VBA o código é denominado VBA 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 ligados a objetos específicos e contêm normalmente código global que pode utilizar em toda a base de dados.

Objetos como formulários e relatórios, e controlos como botões de comando e caixas de texto, têm propriedades de evento às quais pode anexar macros ou procedimentos. Cada propriedade de evento está associada a um evento específico, como clicar no rato, abrir um formulário ou alterar dados numa caixa de texto. Os eventos também podem ser acionados por fatores fora do Access, como eventos do sistema ou por macros ou procedimentos anexados a outros eventos. A sua base de dados pode tornar-se complexa se adicionar muitas macros ou procedimentos a muitas propriedades de eventos em muitos objetos. No entanto, na maioria dos casos, pode obter os resultados que pretende com pouca programação.

Início da Página

Devo utilizar macros ou código VBA?

A decisão de utilizar macros, VBAou ambas depende principalmente da forma como planeia implementar ou distribuir a base de dados. Por exemplo, se a base de dados estiver armazenada no seu computador, é o único utilizador e está à vontade para utilizar VBA código, poderá decidir utilizar VBA para a maioria das tarefas de programação. No entanto, se planear partilhar a sua base de dados com outras pessoas a partir de um servidor de ficheiros, poderá evitar utilizar VBA devido a questões de segurança.

Basee a sua decisão de utilizar macros ou VBA código em duas preocupações: segurança e a funcionalidade pretendida. A segurança é importante porque VBA pode ser utilizada para criar código que comprometa os seus dados ou prejudique ficheiros no seu computador. Quando utiliza uma base de dados criada por outra pessoa, ative VBA o código apenas se souber que a base de dados provém de uma origem fidedigna. Quando cria uma base de dados que outras pessoas irão utilizar, tente evitar incluir ferramentas de programação que exijam que o utilizador confie explicitamente na base de dados. As técnicas gerais para evitar esse requisito aparecem mais à frente nesta secção.

Para ajudar a proteger a sua base de dados, tente utilizar macros quando puder e utilizar VBA apenas para operações que não podem ser executadas através de ações de macro. Além disso, tente utilizar apenas ações de macro que não exijam que a base de dados seja considerada fidedigna antes de poder ser executada. Limitar as ações de macro desta forma ajuda os utilizadores a sentirem-se confiantes de que a base de dados não tem programação que possa danificar dados ou outros ficheiros nos respetivos computadores.

Considerações sobre macros

O Access contém muitas ações de macro que lhe permitem criar macros mais poderosas do que as versões anteriores do Access permitidas. Por exemplo, agora pode criar e utilizar variáveis globais temporárias através de ações de macro e pode processar erros mais facilmente com novas ações de macro de processamento de erros. Em versões anteriores do Access, estas funcionalidades só estavam disponíveis no VBA. Também pode incorporar uma macro diretamente na propriedade de evento de um objeto ou controlo. Uma macro incorporada torna-se parte do objeto ou controlo e permanece com o mesmo se o objeto ou controlo for movido ou copiado.

As macros proporcionam uma forma fácil de processar várias tarefas de programação, como abrir e fechar formulários e executar relatórios. Pode associar rapidamente os objetos da base de dados, como formulários e relatórios, que criou porque há pouca sintaxe para memorizar. Os argumentos de cada ação são apresentados no Construtor de Macros.

Além de as macros fornecerem uma maior segurança e facilidade de utilização, tem de as utilizar para executar as seguintes tarefas:

  • Atribuir uma ação ou conjunto de ações a uma chave. Isto requer a criação de um grupo de macros com o nome AutoKeys.

  • Executar uma ação ou uma série de ações ao abrir uma base de dados pela primeira vez. Isto requer a criação de uma macro com o nome AutoExec.

    Nota

    A AutoExec macro é executada antes de outras macros ou VBA código, mesmo que tenha designado um formulário de arranque na caixa de diálogo Opções do Access e anexado uma macro ou VBA código a esse formulário OnOpen ou OnLoad evento.

Para obter mais informações sobre como criar macros, veja Compreender macros.

Considerações sobre o VBA

Utilize VBA em vez de macros se quiser efetuar um dos seguintes procedimentos:

  • Utilize funções incorporadas ou crie as suas próprias funções. O Access inclui muitas funções incorporadas, como IPmt, que calcula um pagamento de juros. Pode utilizar estas funções para efetuar cálculos sem criar expressões complicadas. Ao utilizar VBAo , também pode criar as 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, pode utilizar as funções que cria em expressões para aplicar uma operação comum a mais do que um objeto.
  • Criar ou manipular objetos. Na maioria dos casos, é mais fácil criar e modificar um objeto na vista Estrutura desse objeto. No entanto, em algumas situações, poderá querer manipular a definição de um objeto no código. Ao utilizar VBAo , pode manipular todos os objetos numa base de dados, bem como a própria base de dados.
  • Executar ações ao nível do sistema. Pode executar a ação RunApp numa macro para executar outro programa, como o Microsoft Excel, a partir do Access, mas não pode utilizar uma macro para fazer muito mais fora do Access. Ao utilizar VBAo , pode verificar se existe um ficheiro no computador, utilizar a Automatização ou o Dynamic Data Exchange (DDE) para comunicar com outros programas baseados no Microsoft Windows, como o Excel, e chamar funções em bibliotecas de ligação dinâmica (DLLs) do Windows.
  • Manipular registos um de cada vez. Pode utilizar VBA para percorrer um conjunto de registos um registo de cada vez e executar uma operação em cada registo. Por outro lado, as macros funcionam com conjuntos inteiros de registos de uma só vez.

Início da Página

Utilizar o Assistente de Botões de Comando para efetuar tarefas de programação comuns

Se estiver a adicionar um botão de comando a um formulário, o Assistente de Botões de Comando pode ajudá-lo a começar a programação. O assistente ajuda-o a criar um botão de comando que executa uma tarefa específica. Num ficheiro do Access (.accdb), o assistente cria uma macro incorporada na OnClick propriedade do botão de comando. .mdb Num ficheiro ou.adp, o assistente cria VBA código porque as macros incorporadas não estão disponíveis nesses formatos de ficheiro. Em qualquer um dos casos, pode modificar ou melhorar a macro ou VBA o código para se adequar melhor às suas necessidades.

  1. No Painel de Navegação, clique com o botão direito do rato no formulário ao qual quer adicionar o botão de comando e, em seguida, clique em Vista Estrutura.

  2. No separador Estrutura do Formulário , clique na seta para baixo para apresentar a galeria Controlos e, em seguida, certifique-se de que a opção Utilizar Assistentes de Controlo está selecionada.

  3. No separador Estrutura do Formulário , na galeria Controlos , clique em Botão.

  4. Na grelha de estrutura de formulário, clique no local onde quer colocar o botão de comando. O Assistente de Botões de Comando é iniciado.

  5. Na primeira página do assistente, clique em cada categoria na lista Categorias para ver as ações que o assistente pode programar para o botão de comando executar. Na lista Ações, selecione a ação que pretende e clique em Seguinte.

  6. Clique nas opções Texto ou Imagem, consoante queira apresentar texto ou uma imagem no botão de comando.

    • Se quiser apresentar texto, pode editá-lo na caixa junto à opção Texto.
    • Se quiser apresentar uma imagem, o assistente sugere uma na lista. Se quiser escolher uma imagem diferente, selecione a caixa de verificação Mostrar Todas as Imagens para apresentar uma lista de todas as imagens de botões de comando fornecidas pelo Access ou clique em Procurar para selecionar uma imagem armazenada noutro local. Clique em Seguinte.
  7. Introduza um nome relevante para o botão de comando. Este passo é opcional e este nome não é apresentado no botão de comando. No entanto, recomendamos que introduza um nome significativo para que, quando precisar de consultar o botão de comando mais tarde, como quando estiver a definir a ordem de tabulação para controlos no seu formulário, seja muito mais fácil distinguir os botões de comando. Se o botão de comando fechar o formulário, por exemplo, poderá atribuir-lhe cmdClose o nome ou CommandClose.

  8. Clique em Concluir. O Access coloca o botão de comando no formulário.

  9. Se quiser ver o que o assistente programou para si, siga estes passos opcionais:

    1. Se a folha de propriedades ainda não estiver apresentada, prima F4 para a apresentar.

    2. Clique no separador Evento na folha de propriedades.

    3. Na caixa de propriedade Ao Clicar , clique no botão Criar .

      O Access inicia o Construtor de Macros e apresenta a macro criada pelo assistente. Se quiser, pode editar a macro. Para obter mais informações, veja Compreender macros. Quando tiver terminado, no separador Estrutura da Macro , no grupo Fechar , clique em Fechar para fechar o Construtor de Macros. Se o Access 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.

  10. 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 se funciona de acordo com o esperado.

Início da Página

Compreender as macros

Uma macro é uma ferramenta que lhe permite automatizar tarefas e adicionar funcionalidades aos seus formulários, relatórios e controlos. Por exemplo, se adicionar um botão de comando a um formulário, pode associar a propriedade do evento do OnClick botão a uma macro que contém os comandos que pretende que o botão execute sempre que estiver selecionado.

É útil pensar nas macros do Access como uma linguagem de programação simplificada em que cria código ao construir uma lista de ações a executar. Para criar uma macro, irá selecionar cada ação numa lista pendente e, em seguida, preencherá as informações necessárias para cada ação. As macros permitem-lhe adicionar funcionalidades a formulários, relatórios e controlos sem escrever código num VBA módulo. As macros fornecem um subconjunto dos comandos que estão disponíveis no VBAe a maioria das pessoas consideram mais fácil criar uma macro do que escrever VBA código.

Pode criar uma macro através do Construtor de Macros, conforme a ilustração abaixo.

Para apresentar o Construtor de Macros:

  • No separador Criar, no grupo Macros e Código, clique em Macro.

Início da Página

Compreender o código VBA

Tal como as macros, VBA permite-lhe adicionar automatização e outras funcionalidades à sua aplicação do Access. Pode expandir VBA com controlos de terceiros e escrever as suas próprias funções e procedimentos para necessidades específicas.

Uma forma rápida de começar VBA é criar primeiro uma macro do Access e, em seguida, convertê-la em VBA código. As instruções para o fazer estão incluídas em Converter macros em código VBA. Esta funcionalidade cria um novo VBA módulo que executa as operações equivalentes na macro. Além disso, abre também o Visual Basic Editor para que possa começar a modificar o procedimento. Quando estiver a trabalhar no Visual Basic Editor, pode clicar em palavras-chave e premir F1 para iniciar a Ajuda para Programadores do Access e saber mais sobre cada palavra-chave. Em seguida, pode explorar a Ajuda para Programadores do Access e descobrir novos comandos para o ajudar a executar as tarefas de programação pretendidas.

Início da Página

Converter macros em código VBA

Pode utilizar o Access para converter automaticamente macros em VBA módulos ou módulos de classe. Pode converter macros anexadas a um formulário ou relatório, quer existam como objetos em separado ou como macros incorporadas. 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

Este processo é convertido em VBA quaisquer macros referidas por, ou incorporadas num formulário ou relatório, ou em qualquer um dos respetivos controlos, e adiciona o VBA código ao módulo de classe do formulário ou relatório. O módulo de classe torna-se parte do formulário ou relatório e é movido juntamente com os mesmos, se forem movidos ou copiados.

  1. No Painel de Navegação, clique com o botão direito do rato no formulário ou relatório e, em seguida, clique em Vista Estrutura.

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

  3. Na caixa de diálogo Converter macros de formulário ou Converter macros de relatório , selecione se pretende que o Access adicione código de processamento de erros às funções geradas. Se as suas macros incluírem comentários, selecione também se pretende que esses comentários sejam incluídos nas funções. Clique em Converter para continuar. Se não existir nenhum módulo de classe para o formulário ou relatório, o Access cria um e adiciona 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 executem os novos VBA procedimentos em vez das macros.

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

    1. Enquanto o formulário ou relatório ainda estiver aberto na vista Estrutura, se a folha de propriedades ainda não estiver apresentada, prima F4 para apresentá-la.

    2. No separador Evento da folha de propriedades [Event Procedure], clique em qualquer caixa de propriedade que apresente e, em seguida, clique no botão Criar . Para ver as propriedades do evento de um controlo específico, clique no controlo para o selecionar. Para ver as propriedades do evento do formulário ou relatório completos, selecione Formulário ou Relatório na lista pendente, na parte superior da folha de propriedades.

      O Access abre o Visual Basic Editor e apresenta o procedimento de evento no respetivo módulo de classe. Pode deslocar-se para cima ou para baixo para ver outros procedimentos que se encontrem no mesmo módulo de classe.

Converter macros globais

  1. No Painel de Navegação, clique com o botão direito do rato na macro que pretende converter e, em seguida, clique em Vista Estrutura.

  2. No separador Estrutura da Macro , no grupo Ferramentas , clique em Converter Macros para Visual Basic.

  3. Na caixa de diálogo Converter Macros, selecione as opções pretendidas e, em seguida, clique em Converter. O Access converte a macro e abre o Visual Basic Editor.

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

    1. No Visual Basic Editor, se o painel Explorador de Projeto não for apresentado, no menu Vista, clique em Explorador de Projeto.
    2. Expanda a árvore sob o nome da base de dados na qual está a trabalhar.
    3. Em Módulos, faça duplo clique no Converted Macro-<macro name> módulo. O Visual Basic Editor abre o módulo.

Anexar uma função VBA a uma propriedade do evento

Quando converte uma macro VBAglobal em , o VBA código é colocado num módulo padrão. Ao contrário de um módulo de classe, um módulo padrão não faz parte de um formulário ou relatório. Muito provavelmente, irá querer associar a função a uma propriedade do evento num formulário, relatório ou controlo para que o código seja executado exatamente quando e onde quer. Para tal, pode copiar o VBA código para um módulo de classe e, em seguida, associá-lo a uma propriedade de evento ou pode fazer uma chamada especial da propriedade do evento para o módulo padrão com o seguinte procedimento.

  1. No Visual Basic Editor, tome nota do nome da função. Por exemplo, se tiver convertido uma macro com o nome MyMacro, o nome da função será MyMacro().
  2. Feche o Visual Basic Editor.
  3. No Painel de Navegação, clique com o botão direito do rato no formulário ou relatório ao qual pretende associar a função e, em seguida, clique em Vista estrutura.
  4. Clique na secção ou no controlo a que pretende associar a função.
  5. Se a folha de propriedades ainda não estiver apresentada, prima F4 para a apresentar.
  6. No separador Evento da folha de propriedades, clique na caixa de propriedade do evento à qual quer associar a função.
  7. Na caixa de propriedade, escreva um sinal de igual (=) seguido do nome da função , por exemplo, =MyMacro(). Certifique-se de que inclui os parênteses.
  8. Guarde o formulário ou relatório ao clicar em Guardar na Barra de Ferramentas de Acesso Rápido.
  9. No Painel de Navegação, faça duplo clique no formulário ou relatório e teste-o para verificar se o código é executado conforme previsto.

Agora já conhece os passos básicos para adicionar VBA código à base de dados. Este artigo descreve apenas as noções básicas sobre como começar. Muitos excelentes livros de referência e recursos online podem ajudá-lo a desenvolver as suas competências de programação.

Consulte também

Criar uma macro de interface de utilizador (IU)

Executar uma macro do Access utilizando um atalho de teclado

Automatizar eventos de arranque com uma macro

Crie uma macro que é executada quando abre uma base de dados

Ordem dos eventos para objectos de base de dados

Início da Página