Criando suas próprias funções e procedimentos
Nessa parte do tutorial você aprenderá a criar nossas próprias funções e Sub-rotinas no Access, usando a programação VBA. O princípio por trás da criação de funções e sub-rotinas, é o de reaproveitamento de código e da facilidade de manutenção e atualização dos programas. Imagine que estejamos criando um banco de dados para cálculos financeiros, por exemplo, depreciação contábil. Vamos supor que em diversos locais, seja necessária a realização do cálculo de depreciação. Poderíamos colocar o código que faz o cálculo, em cada um dos locais onde ele será utilizado. Porém esta não é a melhor maneira de criarmos nossos programas. Imagine, por exemplo, quando fosse necessário alterar a maneira de realizar os cálculos. Teríamos que repassar todos os módulos de código, procurando os pontos onde o código está , e fazer as alterações, um a um. Sem contar que estaríamos criando códigos bastante longos, dependendo do número de cálculos necessários.
Para resolver estes problemas, poderíamos criar uma única função ou sub-rotina que faz os cálculos de depreciação. Depois, em cada local onde precisamos fazer os cálculos, é só chamar a função (ou sub-rotina), para fazer os cálculos. Quando fosse necessária a alteração da metodologia de cálculo, era só alterar a função (ou sub-rotina) e pronto, os novos cálculos passarão a ser feitos com base na nova metodologia. Isto poupa esforço, reduz o número de linhas de código, e facilita a manutenção, além de reduzir a possibilidade de erros.
Agora é chegada a hora de aprendermos a criar funções e sub-rotinas. Estes procedimentos/funções são criados em módulos separados, isto é, não ligados a nenhum formulário/relatório. Quando uma destas funções/procedimentos for necessária, basta chamar a respectiva função/procedimento, que o Microsoft Access se encarrega de localizar a função/procedimento, passar os parâmetros necessários (se for o caso) e receber os resultados retornados, caso seja uma função.
NOTA: Vamos falar um pouco mais sobre o termo Procedimento. Um procedimento é um grupo de instruções que pode ser chamado pelo nome atribuído ao procedimento. Neste contexto, funções e sub-rotinas, são tipos de procedimentos.
Criando e utilizando Sub-rotinas (funções ou procedimentos):
Uma sub-rotina é um grupo de comandos que podem ser executados, simplesmente através da chamada do nome da Sub-rotina. Podemos passar um ou mais argumentos para uma Sub-rotina. Quando uma sub-rotina é chamada, a execução desloca-se para dentro da Sub-rotina, depois de executados todos os comandos dentro da Sub-rotina, a execução do código continua, com o comando seguinte ao que chamou a Sub-rotina.
A sintaxe para declaração de uma Sub-rotina é a seguinte:
Sub Nome_da_Sub-rotina(argumento 1, argumento 2, ..., argumento n)
Comando 1
Comando 2
...
Comando n
End Sub
Uma Sub-rotina pode, ou não, conter argumentos. Caso sejam necessários argumentos, estes serão passados quando a Sub-rotina for chamada, e devem ser passados, na mesma ordem em que foram definidos.
DICA: Quando você criar Sub-rotinas, procure utilizar nomes que descrevam a função da Sub-rotina. Com isso você torna o entendimento do código mais fácil para quem for utilizá-lo.
Considere o seguinte exemplo de declaração de uma Sub-rotina:
Sub Calcula_imposto(salario, desconto, extras)
Comando1
Comando2
...
Comandon
End Sub
Neste caso, declaramos uma rotina chamada Calcula_imposto, a qual espera receber 3 parâmetros: salario, desconto e extras. Os parâmetros devem ser fornecidos nesta ordem, para que a Sub-rotina funcione corretamente.
Uma vez criada a Sub-rotina, podemos chamá-la, simplesmente digitando o nome da Sub-rotina, ou utilizando a palavra Call, mais o nome da Sub-rotina. Nos exemplos abaixo, temos dois métodos de chamada da Sub-rotina Calcula_imposto:
Calcula_imposto(1500,23,125)
ou
Call Calcula_imposto(1500,23,125)
Observe que os parâmetros são passados dentro do parênteses.
Também poderíamos declarar uma Sub-rotina, sem parâmetros. Neste caso posso simplesmente não utilizar os parênteses após o nome da Sub-rotina, ou utilizar um par de parênteses, sem nada dentro, conforme indicado a seguir:
Sub Nome_da_Sub-rotina
Comando1
Comando2
...
Comandon
End Sub
ou
Sub Nome_da_Sub-rotina( )
Comando1
Comando2
...
Comandon
End Sub
Por exemplo, poderíamos criar uma Sub-rotina que exibe uma Caixa de mensagem com a Data do sistema e a hora, no Formato indicado na Figura a seguir:
Poderíamos criar todos os comandos necessários, para exibir a hora e a data neste formato, cada vez que a exibição fosse necessária. Porém é mais prático criar uma Sub-rotina que faz este trabalho. Cada vez que precisarmos exibir a data e a hora neste formato, é só chamarmos a Sub-rotina.
Na Listagem a seguir temos o código da Sub-rotina exibe_data_hora(), a qual faz a exibição da data e da hora, no formato proposto pela Figura anterior.
Listagem– A Sub-rotina exibe_data_hora
Sub exibe_data_hora
End Sub |
Agora, cada vez que for necessário exibir a data e a hora nos formatos do exemplo, basta chamar a Sub-rotina exibe_data_hora, utilizando um dos seguintes comandos:
Call exibe_data_hora
ou
exibe_data_hora
Exercício : Abra o banco de dados de exemplos Northwind.mdb, o qual é instalado juntamente com o Access. Crie um novo módulo chamado Utilitários. Dentro deste módulo crie o procedimento exibe_data_hora. Salve o módulo. Abra um formulário de Teste no modo estrutura. Crie um botão chamado ExSupProc. Associe o seguinte código ao evento Ao clicar deste botão:
Call exibe_data_hora
Teste o funcionamento do botão.
Conclusão:
Neste parte do tutorial falei sobre um dos tópicos mais úteis no uso do VBA: Criação de Funções Personalizadas usando VBA. O objetivo desta série de tutoriais é mostrar como utilizar a programação VBA para solucionar problemas complexos no Access, problemas que muitas vezes não tem como ser resolvidos sem o uso de programação.
Nota: Este tutorial foi retirado da apostila da
Semana 2, do Curso de Excel Avançado e VBA. Você pode
adquirir os três arquivos, com todo o conteúdo deste
curso, em um total de 550 páginas de conteúdo, com
exemplos detalhados, passo-a-passo, por apenas R$ 20,00 para envio
através de Download. Para saber como adquirir este curso, Clique
Aqui.
Universidade do Access - Curso Completo de Access
com tudo para você dominar o Access - do Básico ao
Avançado - até a Criação de Sistemas Profissionais
Completos - Passo a Passo - Tela a Tela
Aplica-se ao Access 2019, 2016, 2013 e 2010!
Para todos os detalhes, acesse:
Contato: Telefone: (51) 3717-3796 | E-mail: webmaster@juliobattisti.com.br | Whatsapp: (51) 99627-3434
Júlio Battisti Livros e Cursos Ltda | CNPJ: 08.916.484/0001-25 | Rua Vereador Ivo Cláudio Weigel, 537 - Universitário, Santa Cruz do Sul/RS, CEP: 96816-208
Todos os direitos reservados, Júlio Battisti 2001-2025 ®
LIVRO: MACROS E PROGRAMAÇÃO VBA NO EXCEL 2016 - CURSO COMPLETO E PRÁTICO
DOMINE A PROGRAMAÇÃO VBA NO EXCEL - 878 PÁGINAS - CLIQUE AQUI