Universidade do Access - Curso Completo - Do Básico Até a Criação de Sistemas Profissionais Completos - Passo a Passo
FORMAÇÃO ONLINE COM CERTIFICADO - 13 CURSOS - 574 VÍDEO-AULAS - 63:32 HORAS - CLIQUE AQUI
Você está em: PrincipalArtigosOffice : Vba_access_p9
Quer receber novidades e e-books gratuitos?


Tutorial de Programação VBA – Access – Parte 9 - Estruturas de repetição

Objetivos:

Esta é a Parte 9 do Tutorial de Programação VBA no Access. Neste tutorial falarei sobre as estruturas de repetiçã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 de repetição

Em determinadas situa ções, precisamos repetir um ou mais comandos, um número específico de vezes, ou até que uma determinada condição torne-se verdadeira ou falsa. Por exemplo, pode ser que haja a necessidade de percorrer todos os registros de uma determinada tabela, até que o último registro seja alcançado. Para isso, utilizamos as chamadas estruturas de repetição, ou Laços. A partir de agora, estaremos analisando as estruturas de repetição disponíveis.

A estrutura For...Next

Utilizamos o laço For...Next, para repetir um segmento de código, um número determinado de vezes. Utilizamos esta estrutura, quando já sabemos o número de vezes que uma determinada seção de código deve ser repetida. Neste tipo de estrutura, normalmente, utilizamos uma variável como contador. Este contador varia de um valor inicial até um valor final. O Formato geral desta estrutura é o seguinte:

For contador=inicio to fim incremento
Comando1
Comando2
...
Comandon
Next
No início a variável contador tem o valor definido para um determinado valor. Em cada passagem do laço, a variável contador é incrementada pelo valor definido em incremento. Caso não seja definido o incremento, será utilizado o padrão 1.

Considere o exemplo a seguir:

Dim x
x=10
Soma=0

‘ Faz a soma dos 10 primeiros números maiores do que zero

For i=1 to x
     Soma = Soma +i
Next

MsgBox “Valor da Soma = “ & Soma

Neste exemplo, a variável i inicia com o valor 1. Em cada passo, o valor de i é acrescentado à variável Soma. Como o incremento não foi definido, será utilizado o padrão que é 1. Com isso, ao final do laço For...Next, a variável Soma, terá armazenado o valor da soma dos 10 primeiros números inteiros.

Poderíamos utilizar um valor de incremento diferente de 1, para, por exemplo, obter a soma somente dos números ímpares menores do que 10:

Dim x
x=10
Soma=0

' Faz a soma dos 10 primeiros números ímpares

For i=1 to x Step 2
     Soma = Soma +i
Next

MsgBox “Valor da Soma = “ & Soma

Com este Script, obtemos o resultado indicado na Figura a seguir:



A estrutura Do...Loop

Esta estrutura pode ser utilizada para repetir um trecho de código, enquanto uma determinada condição for verdadeira, ou até que uma determinada condição torne-se verdadeira. Podemos utilizar dois operadores condicionais diferentes: While ou Until. Os operadores While ou Until, podem ser utilizados de duas maneiras diferentes: No início do laço, ou no final do laço. Com isso temos quatro situações distintas, vamos analisar cada uma delas, a partir de agora.

A estrutura Do While Condição...Loop

Neste caso, estamos utilizando o operador condicional While, no início do laço. O formato geral, neste caso é o seguinte:
Do While condição/teste
Comando1
Comando2
...
Comandon
Loop
Nesta estrutura, enquanto a condição for verdadeira, o código dentro do laço é executado. Quando a condição tornar-se falsa, o primeiro comando após o final do laço, será executado. Neste caso, se a condição for falsa já na primeira vez, o laço não será executado nenhuma vez.

IMPORTANTE: O Código dentro do laço deve ser capaz de alterar a condição para Falso, quando for necessário, pois caso contrário a condição será sempre verdadeira, e os comandos dentro do laço ficarão em execução, infinitamente, ou até o programa travar. A criação de laços infinitos, devido a erros de programação, é uma causa comum de erros e travamentos.

Considere o exemplo a seguir:

Dim x
x=10
Contador=1
Soma=0

' Faz a soma dos 10 primeiros números maiores do que zero

Do While Contador <= x
     Soma = Soma + Contador
     Contador = Contador + 1
Loop

MsgBox “Valor da Soma = “ & Soma

Observe que dentro do laço, vamos Incrementando o valor da variável Contador, uma unidade para cada passagem do laço. Com isso, quando o valor de Contador, atingir 11, o teste do início do laço torna-se falso, e o laço é encerrado.

A estrutura Do... Loop While Condição

Neste caso, deslocamos o teste de condição para o final do laço. Com o teste no final do laço, o código dentro do laço, será executado, pelo menos uma vez, pois o teste somente é feito no final, e continuará sendo executado, enquanto a condição for verdadeira. O formato geral, neste caso é o seguinte:
Do
Comando1
Comando2
...
Comandon
Loop While condição/teste
Nesta estrutura, enquanto a condição for verdadeira, o código dentro do laço é executado. Quando a condição tornar-se falsa, o primeiro comando após o final do laço, será executado. Neste caso, se a condição for falsa já na primeira vez, o laço será executado uma única vez.

IMPORTANTE: O Código dentro do laço deve ser capaz de alterar a condição para Falso, quando for necessário, pois caso contrário a condição será sempre verdadeira, e os comandos dentro do laço ficarão em execução, infinitamente, ou até o programa travar. A criação de laços infinitos, devido a erros de programação, é uma causa comum de erros e travamentos.

Considere o exemplo a seguir:

Dim x
x=10
Contador=1
Soma=0

‘ Faz a soma dos 10 primeiros números maiores do que zero

Do
      Soma = Soma + Contador
      Contador = Contador + 1Loop
While Contador <= x

MsgBox “Valor da Soma = “ & Soma

Vamos modificar um pouco o nosso exemplo. Considere o exemplo mostrado a seguir:

Dim x
x=10
Contador=11
Soma=0

‘ O laço será executado uma única vez, pois a condição
‘ Contador < x é falsa.

Do
     Soma = Soma + Contador
     Contador = Contador + 1
Loop While Contador <= x

MsgBox “Valor da Soma = “ & Soma

Qual o valor será exibido para a variável Soma ?

Muito simples. A condição Contador < x é falsa, pois x=10 e Contador=12 (Lembre que o Contador foi incrementado de uma unidade dentro do laço, antes do teste ser realizado). Neste caso, o laço será executado uma única vez, pois o teste de condição está no final do laço. Quando o laço é executado, é atribuido o valor 11 para a variável Soma. Com isso, o valor exibido para a variável Soma, será 11.

A estrutura Do Until Condição...Loop

Neste caso, estamos utilizando o operador condicional Until, no início do laço. O formato geral, neste caso é o seguinte:
Do Until condição
Comando1
Comando2
...
Comandon
Loop
Nesta estrutura, enquanto a condição for falsa, o código dentro do laço é executado. Quando a condição tornar-se verdadeira, o primeiro comando após o final do laço, será executado. Neste caso, se a condição for verdadeira, já na primeira vez, o laço não será executado nenhuma vez.

IMPORTANTE: O Código dentro do laço deve ser capaz de tornar a condição Verdadeira, quando for necessário, pois caso contrário a condição será sempre Falsa, e os comandos dentro do laço ficarão em execução, infinitamente, ou até o programa travar. A criação de laços infinitos, devido a erros de programação, é uma causa comum de erros e travamentos.

Considere o exemplo a seguir:

Dim x
x=10
Contador=1
Soma=0

‘ Faz a soma dos 10 primeiros números maiores do que zero

Do Until Contador > x
     Soma = Soma + Contador
     Contador = Contador + 1
Loop

MsgBox “Valor da Soma = “ & Soma


Observe que dentro do laço, vamos Incrementando o valor da variável Contador, uma unidade para cada passagem do laço. Com isso, quando o valor de Contador, atingir 11, o teste do início do laço torna-se Verdadeiro, e o laço é encerrado.

A estrutura Do... Loop Until Condição

Neste caso, deslocamos o teste de condição para o final do laço. Com o teste no final do laço, o código dentro do laço, será executado, pelo menos uma vez, pois o teste somente é feito no final, e continuará sendo executado, enquanto a condição for Falsa. O formato geral, neste caso é o seguinte:
Do
Comando1
Comando2
...
Comandon
Loop Until condição
Nesta estrutura, enquanto a condição for Falsa, o código dentro do laço é executado. Quando a condição tornar-se Verdadeira, o primeiro comando após o final do laço, será executado. Neste caso, se a condição for Verdadeira, já na primeira vez, o laço será executado uma única vez.

IMPORTANTE: O Código dentro do laço deve ser capaz de tornar a condição Verdadeira, quando for necessário, pois caso contrário a condição será sempre Falsa, e os comandos dentro do laço ficarão em execução, infinitamente, ou até o programa travar. A criação de laços infinitos, devido a erros de programação, é uma causa comum de erros e travamentos.

Considere o exemplo a seguir:

Dim x
x=10
Contador=1
Soma=0

‘ Faz a soma dos 10 primeiros números maiores do que zero

Do
     Soma = Soma + Contador
     Contador = Contador + 1
Loop Until Contador > x

MsgBox “Valor da Soma = “ & Soma

Vamos modificar um pouco o nosso exemplo. Considere o exemplo a seguir:

Dim x
x=10
Contador=11
Soma=0

‘ O laço será executado uma única vez, pois a condição
‘ Contador >= x é verdadeira.

Do
     Soma = Soma + Contador
     Contador = Contador + 1
Loop Until Contador >= x

MsgBox “Valor da Soma = “ & Soma

Qual o valor será exibido para a variável Soma ?

Muito simples. A condição Contador>= x é falsa, pois x=10 e Contador=12 (Lembre que o Contador foi incrementado de uma unidade, na linha 11, na primeira passagem do laço). Neste caso, o laço será executado uma única vez, pois o teste de condição está no final do laço. Quando o laço é executado, é atribuido o valor 11 para a variável Soma. Com isso, o valor exibido para a variável Soma, será 11.

Conclusão:

Nesta parte do tutorial, falei sobre as estruturas de repetição no código VBA. Você aprendeu sobre as estrutura For...Next, Do...While e Do...Until e suas variações.

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

Capa da Universidade do Access

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


Outras partes do Tutorial
Parte 1 - Programação com o Microsoft Access - Por que utilizar?
Parte 2 - Aprendendo VBA
Parte 3 - O Ambiente de Programação
Parte 4 - Anatomia dos Módulos do VBA
Parte 5 - Tipos de dados - Declaração e “tipo” de variável
Parte 6 - Fazendo cálculos e comparações com o VBA – Uso de Operadores
Parte 7 - O Escopo das variáveis, no VBA
Parte 8 - Estruturas para controle de fluxo em VBA
Parte 9 - Estruturas de repetição
Parte 10 - Funções, procedimentos e eventos com VBA
Parte 11 - Funções para conversão de tipos
Parte 12 - Funções para tratamento de String
Parte 13 - Funções para tratamento de Data e Hora
Parte 14 - Criando suas próprias funções e procedimentos
Parte 15 - Criando e utilizando Funções Personalizadas
Quer receber novidades e e-books gratuitos?

 
 

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-2024 ®

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