Tutorial de Programação
VBA – Access – Parte 8 - Estruturas para controle de fluxo em VBA
Objetivos:
Esta é a Parte 8 do Tutorial de Programação
VBA no Access. Neste tutorial falarei sobre as estruturas de decisão,
utilizadas na programação 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.
Pré-requisitos: Para acompanhar esta lição
você deve dominar os conceitos apresentados no seguintes treinamento:
"Curso
Básico de Access" e no tutorial
"Consultas
Avançadas no Microsoft Access".
Nota: Este tutorial foi retirado da apostila da
Semana 2, do Curso de Access 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.
Estruturas para controle de fluxo em VBA
Para que possamos criar aplicações com utilidade prática,
aplicadas na solução de problemas reais, precisamos
poder controlar o fluxo de execução do código
VBA. Controlar o fluxa significa sermos capazes de realizar testes
e, com base no valor do teste – Verdadeir ou Falso , executar
um conjunto diferente de comandos . No VBA, temos diversas “estruturas”
que permitem um controle bastante eficaz do fluxo de execução.
Nesta parte do tutorial, você aprenderá a utilizar
diversas destas estruturas.
Estruturas de decisão
Em um primeiro grupo, temos as chamadas estruturas de decisão.
São estruturas que realizam um teste lógico, e executam
determinados comandos quando o teste resultar Verdadeiro, ou um
conjunto diferente de comandos, quando o teste resultar Falso. Agora
passaremos a analisar as estruturas de decisão, disponíveis
no VBA.
A estrutura If ... Then
A estrutura If...Then, é uma das estruturas de decisão
mais conhecidas. Toda linguagem de programação implementa
esta estrutura. É utilizada para executar determinados comandos,
caso uma condição seja verdadeira. A forma geral desta
estrutura é a seguinte:
If condição/teste
Then
Comando1
Comando2
...
Comandon
End IF.
Uma condição é testada, caso a condição
seja verdadeira, um ou mais comandos podem ser executados. Considere
o exemplo a seguir:
Dim x, y
x=10
y=15
If x<y Then MsgBox “x
é menor do que y”
End If |
Neste exemplo, a mensagem “
x é menor do que
y”, será exibida, uma vez que o teste
x<y é verdadeiro, conforme podemos constatar pelos valores atribuídos
as variáveis x e y.
A estrutura If ... Then...Else
A estrutura If...Then...Else, acrescenta mais uma possibilidade
a estrutura If...Then. Esta estrutura é utilizada para executar
determinados comandos, caso uma condição seja verdadeira,
ou um conjunto diferente de comandos, caso a condição
seja falsa. A forma geral desta estrutura é a seguinte:
If condição
Then
Comando1
Comando2
...
Comandon
Else
Comando1
Comando2
...
Comandon
End IF
Uma condição é testada, caso a condição
seja verdadeira, um determinado comando, ou conjunto de comandos
será executado; caso a condição seja falsa,
um comando, ou conjunto de comandos diferentes, será executado.
Considere o exemplo a seguir:
Dim x, y
x=15
y=10
If x<y Then MsgBox “x
é menor do que y”
Else MsgBox “x é
maior do que y”
End If |
Neste exemplo, a mensagem “
x é maior do que
y”, será exibida, uma vez que o teste
x<y
é falso, conforme podemos constatar pelos valores
atribuídos as variáveis x e y.
A estrutura If ... Then...ElseIf...Else
A estrutura
If...Then...ElseIf, nos dá uma
poder maior, para testarmos diversas possibilidades. É utilizada
quando precisamos realizar mais do que um teste lógico. Neste
caso, para cada novo teste que se faça necessário,
utilizamos um ElseIf adicional. A forma geral desta estrutura é
a seguinte:
If condição Then
Comandos a serem executados, caso
a condição seja verdadeira.
Comando1
Comando2
...
Comandon
ElseIf condição-2
Comandos a serem executados, caso
a condição2 seja verdadeira.
Comando1
Comando2
...
Comandon
ElseIf condição-3
Comandos a serem executados, caso
a condição3 seja verdadeira.
Comando1
Comando2
...
Comandon
...
ElseIf condição-n
Comandos a serem executados, caso
a condição n seja verdadeira.
Comando1
Comando2
...
Comandon
Else
Comandos a serem executados, caso
nenhuma das condições anteriores seja verdadeira.
Comando1
Comando2
...
Comandon
End IF
Uma condição é testada, caso a condição
seja verdadeira, um determinado comando, ou conjunto de comandos
será executado; caso a condição seja falsa,
podemos fazer um segundo teste (condição-2). Caso
a segunda condição seja verdadeira, um determinado
comando, ou conjunto de comandos será executado, a assim
por diante, para n condições. Caso nenhuma das condições
seja verdadeira, os comandos após a cláusula Else,
serão executados.
Importante: Quando uma das condições for verdadeira,
os comandos associados a esta condição serão
executados e a estrutura será encerrada, ou seja, as demais
condições, não serão mais testadas.
Após o encerramento da estrutura, a execução
continua com o primeiro comando após o End If.
Considere o exemplo a seguir:
Dim x, y
Dim z, k
Dim w, p
x=35
y=30
z=25
k=20
w=15
p=10 If x<y Then
MsgBox
“x é menor do que y” ElseIf
x<z Then MsgBox
“x é menor do que z” ElseIf
x<k Then MsgBox
“x é menor do que k” ElseIf
x<w Then MsgBox
“x é menor do que w” ElseIf
x<p Then MsgBox
“x é menor do que p” Else
MsgBox
“x é o maior dos números” End
If |
Neste exemplo, a mensagem “
x é maior dos números”,
será exibida, uma vez que todos os testes anteriores falham
(pois x é o maior número), com isso somente será
executado o último MsgBox, que faz parte do Else.
Mas o que acontece, quando um dos ElseIf é verdadeiro
?
Os teste vão sendo feitos. Quando o teste de um dos ElseIf
for verdadeiro, os comandos abaixo do ElseIf verdadeiro, serão
executados e o laço será encerrado.
Em
resumo, quando um dos ElseIf apresentar um teste verdadeiros, os
comandos relacionados serão executados, e os demais não
serão avaliados, seguindo a execução para o
primeiro comando, após o End If.
A estrutura Select...Case
Quando precisamos realizar uma série de testes, é
mais eficiente utilizarmos uma única estrutura
Select...Case,
do que utilizarmos uma série de testes utilizando a estrutura
If...Then...ElseIf.
O funcionamento da estrutura Select...Case, é bastante intuitivo.
Considere o exemplo a seguir:
Dim x
x=10 Select Case x
Case 2 MsgBox
“X vale 2 !” Case
4 MsgBox
“X vale 4 !” Case
6
MsgBox
“X vale 6 !” Case
8 MsgBox
“X vale 8 !” Case
10 MsgBox
“X vale 10 !” Case
Else MsgBox
“X não é um número par, menor do
que 12 ” End Select |
A estrutura
Select Case x, vai testar o valor de
x. Em cada um dos Case, o valor de x está sendo testado.
Quando for encontrado um valor coincidente com o de x, os comandos
abaixo deste Case serão executados. No nosso exemplo, o comando
MsgBox “X vale 10 !”, abaixo de Case
10, será executado.
O comando abaixo do Case Else
somente será executado, se todos os testes anteriores falharem.
O uso da estrutura Select...Case, torna o código mais eficiente
e de mais fácil leitura.
Conclusão:
Nesta parte do tutorial, falei sobre as estruturas de decisão
no código VBA. Você aprendeu sobre a estrutura If...Then
e suas variações e também sobre a estrutura
Select Case. Na Parte 9, você aprenderá sobre as Estruturas
de Repetiçã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.
você conhece a universidade do access?
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!
13 Cursos - 574 Vídeo-Aulas - 63:32 horas
Para todos os detalhes, acesse:
https://juliobattisti.com.br/universidade-do-access.asp