Desenvolvimento - Office

Tutorial de Programação VBA - Access - Parte 2

Esta é a Parte 2 do Tutorial de Programação VBA no Access. O objetivo é 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.

por Júlio Cesar Fabris Battisti



Objetivos:

Esta é a Parte 2 do Tutorial de Programação VBA no Access. O objetivo é 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.

Aprendendo VBA

Na Parte 1 você aprendeu que é possível criar código VBA associado a eventos de formulários ou relatórios, que é possível criar uma Macro que executa um procedimento do VBA e que é possível criar funções personalizadas, usando o VBA.

Um procedimento, função ou módulo do VBA é uma seqüência de comandos que são executados para a realização de uma ou mais tarefas. Por exemplo, posso escrever um grupo de comandos que acessa os dados da tabela Pedidos e aumenta o valor de um determinado campo de acordo com determinadas condições.

Observe o comando a seguir:

Me![NúmeroDoPedido].SetFocus

Este é um comando que, simplesmente, coloca o cursor no campo NúmeroDoPedido, no formulário atual. Não se preocupe em entender este comando, agora, pois você aprenderá a utilizar o VBA, em detalhes, nas demais partes deste tutorial.

Todo comando em VBA deve seguir algumas regras de sintaxe. A sintaxe tem a ver com a maneira como o comando é escrito. Por exemplo, se você for utilizar a função Day() em um comando e ao invés de Day(), utilizar Dai(), você terá cometido um erro de sintaxe e o comando não poderá ser executado. Os erros de sintaxe são os mais fáceis de serem identificados e corrigidos.

Os comandos do VBA são divididos, basicamente, em três tipos:

  • Comandos básicos do VBA: São aqueles comandos que estão presentes em toda e qualquer linguagem de programação que se preze. São comandos para declaração de variáveis, operadores aritméticos e lógicos, estruturas de controle e operadores para a realização de testes condicionais. Por exemplo, qual a linguagem que não possui uma função IF para a realização de testes condicionais?

  • Funções internas do Microsoft Access: Existem centenas de funções prontas, fornecidas pelo Microsoft Access e que podem ser utilizadas em qualquer comando do VBA. Por exemplo, para armazenarmos em uma variável x, o valor numérico do ano da data do sistema, poderíamos utilizar o seguinte comando:

    x = Year(Date())

No Curso de Access Avançado e VBA utilizamos uma série destas funções, tais como: Esquerda(), Direita(), Meio(), Ano(), Dia(), Mês, etc.

IMPORTANTE: Ao utilizar funções em comandos do VBA devemos, sempre, utilizar a função em inglês. Por exemplo, ao invés de Ano() devemos utilizar Year(); ao invés de Mês() devemos utilizar Month() e assim por diante.

  • Objetos da hierarquia de objetos do Microsoft Office: Um objeto é uma entidade que possui propriedades (que descrevem as características do objeto) e métodos (que descrevem os comportamentos do objeto). Cada aplicativo do Microsoft Office disponibiliza uma hierarquia de objetos bem definida. Estes objetos podem ser acessados através de programação. Podemos utilizar os métodos dos objetos para realizar determinadas ações sobre o objeto e suas propriedades para obter informações sobre suas características. Esta hierarquia de objetos é que torna o VBA tão poderoso. É graças a hierarquia de objetos do Office que, de dentro de um banco de dados do Access, por exemplo, podemos acessar dados de uma planilha do Excel, gravada em um drive de rede e combinar tais dados com dados obtidos a partir de um banco de dados , por exemplo, do Dbase (.dbf), gravado na máquina local. Falaremos mais sobre objetos adiante. Agora, apenas a título de exemplo, alguns comandos do VBA que utilizam um objeto do tipo RecordSet para descobrir o número de registros da tabela Pedidos:
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim numreg As Integer    
    
    Set db = CurrentDb()
    Set rs = db.OpenRecordset("Pedidos")
    numreg = rs.RecordCount
    MsgBox "NÚMERO DE REGISTROS DA TABELA PEDIDOS:  " & numreg
    

    Quando o Microsoft Access executa estes comandos é emitida a seguinte mensagem:

    Importante: Não se preocupe em entender os comandos utilizados no exemplo anterior. Vamos estudar em detalhes, uma série de objetos, inclusive os objetos Database e RecordSet, utilizados no exemplo anterior, nas próximas partes deste tutorial.

    Conclusão:

    Nesta segunda parte aprofundei um pouco a discussão sobre o que é o VBA e também sobre os três tipos de comandos disponíveis no VBA. Na Parte 3 você aprenderá sobre o ambiente de programação do VBA e fará o primeiro exemplo prático.

Júlio Cesar Fabris Battisti

Júlio Cesar Fabris Battisti