Академический Документы
Профессиональный Документы
Культура Документы
Agora que j falei bastante e fiz uma boa propaganda das vantagens em se
utilizar o VBA para programao no Microsoft Access, hora de
aprendermos os fundamentos bsicos desta linguagem de programao.
Bem, isso j fica para a Parte 2 deste tutorial.
Concluso:
Nesta primeira parte fiz apenas uma apresentao do que a linguagem
VBA e quando podemos utiliz-lo, bem como dos tipos de problemas que
podem ser solucionados, usando o VBA. A partir da prxima parte deste
tutorial, voc comear a aprender os fundamentos da programao VBA no
Access
Tutorial de Programao VBA - Access - Parte 2
Esta a Parte 2 do Tutorial de Programao VBA no Access. O objetivo
mostrar como utilizar a programao VBA para solucionar problemas
complexos no Access, problemas que muitas vezes no tem como ser
resolvidos sem o uso de programao.
por Jlio Cesar Fabris Battisti
1310
Objetivos:
Esta a Parte 2 do Tutorial de Programao VBA no Access. O objetivo
mostrar como utilizar a programao VBA para solucionar problemas
complexos no Access, problemas que muitas vezes no tem como ser
resolvidos sem o uso de programao.
Aprendendo VBA
Na Parte 1 voc aprendeu que possvel criar cdigo VBA associado a
eventos de formulrios ou relatrios, que possvel criar uma Macro que
executa um procedimento do VBA e que possvel criar funes
personalizadas, usando o VBA.
Um procedimento, funo ou mdulo do VBA uma seqncia de comandos
que so executados para a realizao 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 condies.
Observe o comando a seguir:
Me![NmeroDoPedido].SetFocus
Este um comando que, simplesmente, coloca o cursor no campo
NmeroDoPedido, no formulrio atual. No 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 funo Day() em um comando e ao invs de Day(), utilizar
Dai(), voc ter cometido um erro de sintaxe e o comando no poder ser
executado. Os erros de sintaxe so os mais fceis de serem identificados e
corrigidos.
Os comandos do VBA so divididos, basicamente, em trs tipos:
o
Dim db As DAO.Database
Dim rs As DAO.Recordset
o
o
Set db = CurrentDb()
Set rs = db.OpenRecordset("Pedidos")
numreg = rs.RecordCount
Objetivos:
Esta a Parte 3 do Tutorial de Programao VBA no Access. O objetivo desta
srie de tutoriais mostrar como utilizar a programao VBA para
solucionar problemas complexos no Access, problemas que muitas vezes
no tem como ser resolvidos sem o uso de programao.
Nota: Este tutorial foi retirado da apostila da Semana 2, do Curso de Access
Avanado e VBA. Voc pode adquirir os trs arquivos, com todo o contedo
deste curso, em um total de 550 pginas de contedo, com exemplos
detalhados, passo-a-passo, por apenas R$ 20,00 para envio atravs de
Download. Para saber como adquirir este curso, Clique Aqui.
O Ambiente de Programao
O ambiente de programao , basicamente, um editor de texto com
recursos adicionais, os quais facilitam bastante o trabalho do programador.
O Microsoft Access fornece um ambiente de programao bastante
poderoso, com uma srie de recursos que facilitam a criao, utilizao e
depurao de cdigo VBA. Nesta parte do tutorial vamos aprender a utilizar
os aspectos bsicos do Ambiente de Programao do VBA.
Se no tivssemos disponvel um Ambiente de Programao, teramos que
lembrar da sintaxe de todos os comandos, dos mtodos e propriedades dos
objetos. Convenhamos que isso praticamente impossvel, pois com o VBA
temos acesso a milhares de objetos ( isso mesmo: milhares de objetos).
Cada objeto pode ter dezenas de propriedades, mtodos e colees.
O ambiente de Desenvolvimento fornece uma srie de facilidades enquanto
estamos criando nosso cdigo VBA. Por exemplo, ao digitar o nome de um
objeto e um ponto ser aberta, automaticamente, uma lista com todos os
mtodos e propriedades deste objeto. Ao invs de lembrar do nome dos
mtodos/propriedades, basta selecion-los em uma lista. Se selecionarmos
um mtodo, ao digitarmos o parnteses de abertura, ser exibida uma lista
com os argumentos esperados pelo mtodo, bem como o tipo (texto,
nmero, data, etc) de cada argumento. Se digitarmos um comando
incorretamente, o Ambiente de Desenvolvimento emite uma mensagem e
coloca em destaque o comando que foi digitado incorretamente. Estas so
apenas algumas das facilidades fornecidas pelo Ambiente de
Desenvolvimento do VBA.
Para conhecermos melhor o referido ambiente, vamos a um exemplo
prtico. Vamos abrir o banco de dados Northwind.mdb, o qual um arquivo
de exemplos que instalado juntamente com o Microsoft Access.
Criaremos um novo formulrio chamado Teste, formulrio este que no ser
baseado em nenhuma tabela/consulta, ou seja: um formulrio em branco.
Vamos adicionar um boto de comando. Quando for aberto o assistente de
comando vamos clicar no boto Cancelar. Criaremos, manualmente, cdigo
VBA associado ao evento Ao clicar do boto de comando. Ao criar o cdigo
veremos os principais Elementos/Vantagens do ambiente de
desenvolvimento. Utilizaremos o seguinte cdigo:
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
End Sub
A palavra Private significa que o procedimento Privado, ou seja, somente
pode ser acessado de dentro do formulrio Teste. Por exemplo, no teramos
como chamar este procedimento l no formulrio Pedidos ou Clientes. O
nome do procedimento como se fosse uma funo/sub-procedimento, por
isso o abre e fecha parnteses aps o nome. O procedimento poderia
receber um ou mais parmetros de entrada e retornar um ou mais
parmetros de sada. Aprenderemos a trabalhar com parmetros mais
adiante. O final do procedimento indicado pelo comando: End Sub.
O nosso cdigo de exemplo deve ser digitado dentro dos limites do
procedimento (entre as linhas Private... e End Sub).
Set db = CurrentDb()
Set rs = db.OpenRecordset("Pedidos")
numreg = rs.RecordCount
MsgBox "NMERO DE REGISTROS DA TABELA PEDIDOS: " & numreg
Observe que a medida que voc vai digitando o nome dos objetos, as listas
com o nome das propriedades/mtodos vo sendo exibidas.
O Ambiente de Desenvolvimento tambm oferece uma srie de menus e
botes de comando. A medida que formos utilizando estes comandos iremos
explicando cada um deles.
20. Agora vamos salvar o procedimento BotaoEx_Click(). D um clique no
boto Salvar (boto com a figura do disquete). Ser aberta uma janela
pedindo o nome do Formulrio: Digite Teste e d um clique no boto OK,
conforme indicado na prxima figura:
Objetivos:
Esta a Parte 4 do Tutorial de Programao VBA no Access. O objetivo desta
srie de tutoriais mostrar como utilizar a programao VBA para
solucionar problemas complexos no Access, problemas que muitas vezes
no tem como ser resolvidos sem o uso de programao.
Nota: Este tutorial foi retirado da apostila da Semana 2, do Curso de Access
Avanado e VBA. Voc pode adquirir os trs arquivos, com todo o contedo
deste curso, em um total de 550 pginas de contedo, com exemplos
detalhados, passo-a-passo, por apenas R$ 10,00 para envio atravs de
Download ou por R$ 15,00 para envio atravs de CD. Para saber como
adquirir este curso, Clique Aqui.
Anatomia dos Mdulos do VBA
O cdigo VBA escrito em unidades chamadas sub-rotinas ou funes que
so armazenadas em mdulos. Os mdulos do Microsoft Access podem ser
de dois tipos:
Mdulos Padro (Standard modules)
Mdulos de Classes (Class modules)
Mdulos padro: So criados a partir da opo Mdulos, em um banco
de dados do Access. Os procedimentos e funes criados neste tipo de
mdulo podem ser utilizados a partir de outros mdulos, em formulrios e
relatrios. Por exemplo, posso criar um mdulo padro chamado "Funes
de Validao". Neste mdulo crio uma funo para validao do CPF, outra
para validao do CNPJ e uma terceira para validao do nmero de
processos. A partir de qualquer formulrio ou relatrio posso "chamar" as
funes contidas no mdulo "Funes de Validao". Esta uma maneira de
"reaproveitar" as funes que criamos, ou seja, criamos uma nica vez e
utilizamos nos vrios locais onde a funo for necessria.
Mdulos de classe: Podem ser criados como Mdulos padro ou podem
ser associados a um formulrio ou relatrio. Ao criarmos cdigo associado
com um evento em um formulrio ou relatrio, o Microsoft Access,
automaticamente, cria um mdulo associado com o formulrio/relatrio.
Anatomia de um mdulo VBA: Um mdulo VBA formado por uma seo
de declaraes e uma srie de funes/procedimentos. A diferena bsica
entre funo e procedimento que a funo retorna um ou mais valores e o
procedimento simplesmente executa uma srie de comandos, sem retornar
valores. Na seo de declaraes podemos declarar variveis e outros
comandos especiais que tero efeito sobre todos os componentes do
mdulo.
Quando criamos um mdulo associado a um formulrio, temos uma srie de
procedimentos. Cada vez que criamos cdigo em resposta a um evento,
criado um novo procedimento no modo associado ao formulrio.
A seguir temos um exemplo de uma estrutura genrica de um mdulo.
" ANATOMIA DE UM MDULO DO VBA.
...
Objetivos:
erro acontece porque tentamos utilizar uma varivel c, varivel esta que
no foi declarada.
Null
Boolean
Byte
Integer
Currenc
y
Long
Date(Ti
me)
String
Object
Error
Concluso:
Nessa quinta parte do tutorial, falei sobre o conceito de variveis,
declarao de variveis e o uso do comando Dim. Tambm falei sobre tipos
de variveis e subtipos do tipo Variant. Voc tambm aprendeu que a
declarao Option Explicit, pode ser utilizada na seo de declaraes do
mdulo, para fazer com que seja obrigatria a declarao das variveis.
Tutorial de Programao VBA Access Parte 6
Esta a Parte 6 do Tutorial de Programao VBA no Access. Neste
tutorial falarei sobre operadores aritmticos e de comparao.
por Jlio Cesar Fabris Battisti
1000
Objetivos:
Esta a Parte 6 do Tutorial de Programao VBA no Access. Neste tutorial
falarei sobre operadores aritmticos e de comparao. Durante o tutorial eu
peo para voc abrir um banco de dados, abrir um formulrio no modo
estrutura e criar o cdigo do exemplo. Voc pode utilizar qualquer banco de
dados disponvel Eu sugiro que voc utilize o banco de dados de Exemplo Northwind.mdb, o qual fornecido juntamente com o Microsoft Access.
Dentro do Northwind.mdb, voc pode utilizar qualquer formulrio, como por
exemplo Clientes, Fornecedores ou Produtos.
Nota: Este tutorial foi retirado da apostila da Semana 2, do Curso de Access
Avanado e VBA. Voc pode adquirir os trs arquivos, com todo o contedo
deste curso, em um total de 550 pginas de contedo, com exemplos
detalhados, passo-a-passo, por apenas R$ 10,00 para envio atravs de
Download ou por R$ 15,00 para envio atravs de CD. Para saber como
adquirir este curso, Clique Aqui.
Fazendo clculos e comparaes com o VBA - Uso de Operadores:
Smb
olo
Descrio
Adio
Subtrao
Multiplicao
Diviso
Exponenciao
Modulo
Mod
Dim a As Integer
Dim b As Integer
o
o
a=25
b=3
o
o
som=a+b
subtr=a-b
divis=a/b
mult=a*b
intdivs=a\b
expo=a^b
modul= a mod b
o
o
o
o
MsgBox "Os nmeros so: " & a & " e " & b & Chr(13)
MsgBox "Soma: " & som & Chr(13)& "Subtrao: " & subtr & Chr(13)
MsgBox "Diviso: " & divis & Chr(13)& "Multiplicao: " & mult &
Chr(13)
MsgBox "Diviso inteira: " & intdivs & Chr(13)& "Exponenciao: " &
expo & Chr(13)
Salve o Formulrio.
Else
End If
Conforme podemos ver, a estrutura If Then Else, bastante simples.
Fazemos um teste no incio da estrutura. Se o valor do teste for verdadeiro,
executamos os comandos na seqncia, caso contrrio, executamos os
comandos aps o Else. Note que utilizamos o operador de comparao
"maior do que: >", no caso x>y, estamos testando se x maior do que y.
Podemos utilizar laos If Then Else mais complexos, como os do exemplo:
If x>y Then
Comando 2
...
Comando n
Else
End If
Podemos utilizar tantos ElseIf, quantos forem necessrios.
Na Tabela a seguir temos uma descrio dos operadores de comparao do
VBA.
Tabela - Operadores de comparao do VBA.
Operador
Smbolo
Descrio
Igualdade
igual .
Diferente
<>
diferente de.
Maior que
>
maior do que.
Menor que
<
menor do que.
Maior ou igual a
>=
maior ou igual a.
Menor ou igual a
<=
menor ou igual a.
o
o
x=12
y=15
z=20
k=15
o
o
o
o
o
o
If x<y Then
MsgBox "x menor do que y."
Else
MsgBox "x maior do que y."
End If
o
o
o
o
o
o
If y<x Then
MsgBox "Y menor do que x"
Else
MsgBox "Y maior do que x"
End If
o
o
o
o
o
o
If y<=k Then
MsgBox "y menor ou igual k"
Else
MsgBox "Y maior do que k"
End If
o
o
o
If x<>y Then
MsgBox "x e y so diferentes"
End If
Salve o Formulrio.
Resultado
Comparao normal.
So consideradas iguais.
Objetivos:
Esta a Parte 7 do Tutorial de Programao VBA no Access. Neste
tutorial falarei sobre o conceito de Escopo de Variveis no VBA. O
objetivo desta srie de tutoriais mostrar como utilizar a
programao VBA para solucionar problemas complexos no Access,
x=10
x=20
Call proc1
" Agora vamos tentar utilizar os valores de a e b
" Fora do procedimento proc1.
" Observe que a varivel aux1 no calculada
" corretamente, uma vez que os valores de a e b
" no esto disponveis, fora do procedimento proc1
Aux1 = a + b
MsgBox "aux1= " & Aux1
O comando Call faz o chamado ao procedimento proc1. Este
procedimento deve ser definido no mesmo mdulo, caso contrrio
um erro ser gerado. Ao encontrar esse comando o Access desloca
a execuo para o procedimento proc1, executa os comandos deste
procedimento e aps encerrar continua a execuo a partir do
comando seguinte ao comando Call.
V para a seo de Declaraes do mdulo e declare as seguintes
varivies:
Sub proc1()
Dim a, b
a=5
b=7
MsgBox "x= " & x & " y= " & y & " a= " & a & " b= " & b
End Sub
Feche o Ambiente de Desenvolvimento.
V para o modo formulrio.
D um clique no boto ExEscopo.
Ser exibida a janela indicada na Figura a seguir: