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. 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 é a programação?

No Access, programar significa adicionar funcionalidades à 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, cria uma macro ou VBA procedimento e, em seguida, define a propriedade do evento do botão de OnClick comando para que o botão de comando execute a macro ou o procedimento. Para uma operação simples, como abrir um relatório, pode utilizar o Assistente de Botões de Comando para efetuar o trabalho ou pode desativar o assistente e programá-lo por si próprio.

Nota

Muitos programas do Microsoft Office usam o termo "macro" para se referir ao VBA código. Isto pode confundir os utilizadores do Access, uma vez que, neste casos, o termo "macro" se refere a uma coleção de ações de macro com nome que reúne 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 uma interface mais estruturada do que o Visual Basic Editor para que você possa adicionar programação a controles e objetos sem aprender VBA código. Nos artigos da Ajuda do Access, as macros do Access são denominadas 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.

Os objetos, como formulários e relatórios, e os controlos, como botões de comando e caixas de texto, têm propriedades do evento a que pode anexar macros ou procedimentos. Cada propriedade do 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 exteriores ao Access, como eventos de 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 várias propriedades do evento em muitos objetos. Na maioria dos casos, porém, você pode obter os resultados que deseja usando muito pouca programação.

Início da Página

Devo utilizar macros ou código VBA?

A decisão de utilizar macros, ou ambas, VBAdepende principalmente da forma como planeia implementar ou distribuir a base de dados. Por exemplo, se a base de dados estiver armazenada no seu computador, for o único utilizador e estiver familiarizado com a utilização VBA de código, poderá optar por utilizá-la VBA para a maioria das tarefas de programação. No entanto, se planeia partilhar a sua base de dados com outras pessoas de um servidor de ficheiros, poderá querer evitar a utilização VBA devido a preocupações relacionadas com a segurança.

Baseie a sua decisão de utilizar macros ou VBA código em duas questões: segurança e a funcionalidade que pretende. A segurança é importante porque VBA pode ser utilizado para criar código que compromete os seus dados ou danifica ficheiros no seu computador. Quando utilizar 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 utilizam, tente evitar incluir ferramentas de programação que exijam que o utilizador confie explicitamente na base de dados. Técnicas gerais para evitar esse requisito aparecem mais adiante nesta seção.

Para ajudar a proteger a sua base de dados, tente utilizar macros sempre que possível e utilize-as VBA apenas para operações que não possam ser executadas com ações de macro. Além disso, tente utilizar apenas ações de macro que não exijam que a base de dados seja fidedigna para poderem ser executadas. Limitar as ações de macro desta forma ajuda os utilizadores a terem a certeza de que a base de dados não possui programação que poderá danificar dados ou outros ficheiros nos seus computadores.

Considerações sobre macros

O Access contém várias ações de macro que lhe permitem criar macros mais avançadas do que as permitidas pelas versões anteriores do Access. 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. Nas versões anteriores do Access, estas funcionalidades só estavam disponíveis no VBA. Também pode incorporar uma macro diretamente na propriedade do evento de um objeto ou controlo. Uma macro incorporada torna-se parte do objeto ou controlo e permanece com ele 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 objetos de base de dados, tais como formulários e relatórios, que criou porque existe 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. Neste caso, é necessário criar um grupo de macros denominado AutoKeys.

  • Executar uma ação ou uma série de ações ao abrir uma base de dados pela primeira vez. Neste caso, é necessário criar um grupo de macros com o nome AutoExec.

    Nota

    A AutoExec macro é executada antes de quaisquer 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 OnOpen uma macro ou VBA um código ao formulário ou OnLoad evento.

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

Considerações sobre o VBA

Utilize VBA em vez de macros se pretender efetuar qualquer uma das seguintes ações:

  • Utilize funções incorporadas ou crie as suas próprias funções. O Access inclui várias funções incorporadas, tais como IPmt, que calcula o pagamento de um juro. 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 efetuar 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 criadas em expressões para aplicar uma operação comum a mais de um objeto.
  • Criar ou manipular objetos. Na maioria dos casos, é mais fácil criar e modificar um objeto na vista Estrutura desse objeto. Em algumas situações, no entanto, você pode querer manipular a definição de um objeto no código. VBAUsando o , 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. Pode executar a ação numa macro para executar outro programa, como o RunApp Microsoft Excel, a partir do Access, mas não pode utilizar uma macro para fazer muitas outras coisas fora do Access. VBAUsando o , você pode verificar se um arquivo existe no computador, usar automação ou troca dinâmica de dados (DDE) para se comunicar com outros programas baseados no Microsoft Windows, como o Excel, e funções de chamada em bibliotecas de vínculo dinâmico do Windows (DLLs).
  • 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 completo de registos ao mesmo tempo.

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 que é incorporada na OnClick propriedade do botão de comando. .mdb Num ficheiro OR.adp, o assistente cria VBA código porque as macros incorporadas não estão disponíveis nesses formatos de ficheiro. Em seguida, em ambos os casos, pode modificar ou melhorar a macro ou VBA o código de acordo com as 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 o nome não é apresentado no botão de comando. No entanto, é uma boa ideia introduzir um nome relevante para que, quando precisar de fazer referência ao botão de comando mais tarde, por exemplo, quando estiver a definir a ordem de tabulação dos controlos no formulário, seja muito mais fácil distinguir os botões de comando. Se, por exemplo, o botão de comando fechar o formulário, pode atribuir-lhe cmdClose um nome .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 tiver sido apresentada, prima F4 para a apresentar.

    2. Clique no separador Evento na folha de propriedades.

    3. Na caixa de propriedade Ao Fazer , clique no botão Compilar .

      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, consulte Entender macros. Quando terminar, 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 de Formulário , no grupo Vistas , clique em Ver e, em seguida, clique em Vista de 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 permite automatizar tarefas e adicionar funcionalidades aos 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 for 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 disponíveis no VBA, e a maioria das pessoas considera 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 ao utilizar controlos de terceiros e pode 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. Ao 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. Pode também converter macros globais não anexadas a um relatório ou formulário específicos.

Converter macros anexadas a um formulário ou relatório

Este processo converte em VBA macros referenciadas 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 em Visual Basic ou Converter Macros do Relatório em Visual Basic.

  3. Na caixa de diálogo Converter macros do formulário ou Converter macros do relatório , selecione se pretende que o Access adicione código de processamento de erros às funções geradas. Se as 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 altera também 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. Com o formulário ou relatório ainda aberto na vista Estrutura, se a folha de propriedades ainda não estiver visível, prima F4 para a apresentar.

    2. No separador Evento da folha de propriedades, clique em qualquer caixa de propriedade que seja apresentada [Event Procedure]e, em seguida, clique no botão Compilar . 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 de Macros , 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, clique duas vezes 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 global em VBA, 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 fazer isso, você pode copiar o VBA código em um módulo de classe e, em seguida, associá-lo a uma propriedade do evento, ou você pode fazer uma chamada especial da propriedade do evento para o módulo padrão usando o seguinte procedimento.

  1. No Visual Basic Editor, tome nota do nome da função. Por exemplo, se tiver convertido uma macro denominada 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 tiver sido 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á sabe os passos básicos para adicionar VBA código à sua base de dados. Este artigo descreve apenas as noções básicas sobre como começar. Muitos livros de referência e recursos online excelentes podem ajudá-lo a desenvolver suas habilidades 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