Mostrando postagens com marcador access. Mostrar todas as postagens
Mostrando postagens com marcador access. Mostrar todas as postagens

sábado, 12 de setembro de 2015

Do While e Do Until

As instruções de Loop Do While e Do Until servem para que um bloco de instruções seja executado enquanto as condições referentes à cada instrução sejam alcançadas.

Numa tradução literal do inglês para o português as instruções podem ser entendidas da seguinte forma:

Do While = Faça enquanto
Do Until = Faça até

A sintaxe das duas instruções é a mesma, porém sua lógica é diferente


Do While "Teste condição"
   Bloco de instruções
Loop

Do Until "Teste condição"
   Bloco de instruções
Loop


Como pode-se reparar, a única diferença entre as duas instruções são as Palavras chave While e Until.

Agora vamos ver as respectivas lógicas das instruções.

O Loop While será executado sempre que o Teste de condição retornar um valor Verdadeiro


Dim aValor As Integer
aValor = 0
Do While aValor < 4 'enquanto for verdadeira
    MsgBox a
    aValor = aValor + 1
Loop
MsgBox "Fim"



No exemplo acima, a variável aValor começa com o valor 0 e a cada rodada do loop, seu valor é acrescido de 1.

O teste de condição verifica se aValor é menor do que 4, caso seja menor ( verdadeira ), o loop continua, caso contrário ele é finalizado.

Ao contrário do While o Loop Until será executado sempre que o Teste de condição retornar um valor Falso


Dim aValor As Integer
aValor = 0
Do Until aValor > 4 'enquanto for Falsa  
    MsgBox a   
    aValor = aValor + 1
Loop
MsgBox "Fim"

No exemplo acima, a variável aValor começa com o valor 0 e a cada rodada do loop, seu valor é acrescido de 1.

O teste de condição verifica se aValor é maior do que 4, caso seja maior ( falsa ), o loop se encerra, caso contrário ele continua. Outro detalhe nesse tipo de loop, é onde desejamos fazer a verificação da condição. Podemos colocar logo após o DO ou então após o LOOP.

Esse detalhe tem que ser usado com cautela, pois pode prejudicar de alguma forma os resultados do seu projeto.

Vejamos um exemplo da instrução While e passando de primeira um valor Falso para o teste de condição


Dim aValor As Integer
aValor = 0
Do While aValor > 4 'enquanto for verdadeira   
    MsgBox a
    aValor = aValor + 1
Loop
MsgBox "Fim"


Nesse exemplo, o bloco de instruções não é executado, pois a condição já começa como Falsa ( a não é maior que 4 ) e o loop é encerrado

Porém se alterarmos o local do teste de condição e deixarmos após o Loop, o bloco de instruções será executado uma vez.


Dim aValor As Integer
aValor = 0
Do
    MsgBox a
    aValor = aValor + 1
Loop While aValor > 4 'enquanto for verdadeira   
MsgBox "Fim"

segunda-feira, 8 de setembro de 2014

Loop For...Next

A instrução For...Next é usada quando precisamos executar algumas rotinas uma determinada quantidade de vezes em seqüência.
Com ela podemos usar uma variável de controle e passarmos valores a controles e objetos. Também podemos usá-la para chamar outras funções e procedimentos.
A sintaxe simples do Loop For...Next é a descrita abaixo.
For i = 1 To 10
      Aqui sera definido nosso bloco de instruções  
Next
Definimos uma variável de controle e a nomeamos como “i”, mas pode ser outro nome qualquer. O valor Zero (0) é onde nosso contador irá iniciar e o valor Dez(10) até onde o Loop irá executar.
No nosso exemplo, a variável de controle “i” irá iniciar no Zero e irá executar a rotina por 10 vezes, lembrando que a cada execução, o valor da variável é acrescido de 1.
 O valor que acrescentamos a cada execução do loop pode ser alterado através da instrução Step.
For i = 0 To 10 Step 2
      Aqui sera definido nosso bloco de instruções  
Next
No Exemplo, a rotina irá executar 6 vezes e a cada rodada do loop, a variável será acrescida de 2.
Os valores assumidos pela variável durante todas as rodadas são: 0, 2, 4, 6, 8 e 10.
Importante ressaltar que a variável de controle só é visível dentro do For, caso seja necessário visualizá-la em outra parte do código, tem que ser declarada usando as instruções (DIM ou Public) e do tipo numérica (Integer, Double ou Long).
 Pode ser que em alguma situação na Rotina For, seja necessário encerrar o LOOP como no exemplo abaixo.
Nessa situação, caso a data retornada pela instrução DateAdd seja maior que a Data atual do Sistema, o loop é encerrado usando a instrução Exit For
Dim a As Date
a = InputBox("informe a data")
For i = 0 To 10
    If DateAdd("d", i, a) > Date Then
        Exit For
    Else
        MsgBox DateAdd("d", i, a)
    End If
Next
Vamos supor que no nosso projeto existam duas consultas uma de Atualização e outra de Acréscimo de dados.
Nas nossas rotinas, precisamos executar a consulta de Acréscimo e depois a de Atualização pra consolidar os Dados importados.
Com a ajuda do For...Next podemos deixá-las em execução sempre uma após a outra.
Primeiro vamos definir uma variável do tipo Array de tamanho 2 e pra cada item dessa variável vamos passar o nome das duas consultas.

Dim stConsulta(2) as string
stConsulta(0)=”ConsultaAcrescimo”
stConsulta(1)=”ConsultaAtualizacao”
 Agora criamos o Loop
For i=0 to 1
     DoCmd.OpenQuery stConsulta(i), acViewNormal
Next
Nesse caso, na primeira execução a variável de controle está com o valor Zero, dessa forma irá executar a consulta ConsultaAcrescimo que está definida no item Zero da Variavel Array stConsulta.
Quando o Loop executa pela segunda vez, a variável de controle assume o valor 1 e executa então a nossa segunda Consulta.

Condicionais Select Case e IF... Then... Else

 As construções condicionais servem para testar certas condições e executar determinadas ações quando essas condições são atendidas.
Existem basicamente 2 construções que nos permite realizar esses testes, o Select Case e o If...Then...Else

A função das duas construções é a mesma, porém para certos casos uma de aplica melhor que a outra.

Nos exemplos abaixo, para os mesmos testes, vou lista as duas formas de escrever o código.

1) Realizar a verificação da Variável "a" do tipo String, nos procedimentos Select Case e If...then...else.

Dim a As String
a = InputBox("Informe um Valor")

Select Case a
    Case "Pedro", "João", "Marcia", "Flavia"
        MsgBox "Vc Escolheu alguem da familia"
    Case Else
        MsgBox "Não Pertence a familia"
End Select



If a = "Pedro" Or a = "João" Or a = "Marcia" Or a = "Flavia" Then
    MsgBox "Vc Escolheu alguem da familia"
Else
    MsgBox "Não Pertence a familia"
End If



2) Realizar o cálculo MOD para retornar o produto de uma divisão. Caso o  produto da divisão de um número seja 1, então ele é um número ímpar, caso contrário um número par.

Dim a As Integer
a = InputBox("Informe um Valor")


Select Case a Mod 2
Case 0
    MsgBox "Número Par"
Case Else
    MsgBox "Número Ímpar"
End Select


If a Mod 2 = 0 Then
     MsgBox "Número Par"
Else
    MsgBox "Número Ímpar"
End If




3) Verificação simples para testar o valor da variável

Dim a As Integer
a = InputBox("Informe um Valor")

Select Case a
Case Is > 5
    MsgBox "Número maior ou igual que 5"
Case Else
    MsgBox "Número menor que 5"
End Select


If a > 5 Then
     MsgBox "Número maior ou igual que 5"
Else
    MsgBox "Número menor que 5"
End If



4) selecionar casos que estejam em um determinado intervaldo. Ex.: de 0 a 5, de 6 a 9

Dim a As Integer
a = InputBox("Informe um Valor de 0 a 10")

Select Case a
Case 0 To 5
    MsgBox "Ruim"
Case 6 To 9
    MsgBox "Bom"
Case 10
    MsgBox "Excelente"
Case Else
    MsgBox "Valor informado fora do intervalo"
End Select

If a >= 0 And a <= 5 Then
     MsgBox "ruim"
ElseIf a >= 6 And a <= 9 Then
    MsgBox "Bom"
ElseIf a = 10 Then
    MsgBox "Excelente"
Else
    MsgBox "Valor informado fora do intervalo"
End If

quarta-feira, 27 de agosto de 2014

Tipos de Dados - Variáveis

Abaixo a tabela com os tipos de dados que podem ser usados com as variáveis no VBA.


Para trabalhar com esses dados e variáveis de forma adequada, é necessário atenção em alguns detalhe:

          • ao declarar uma variável de um tipo e tentar armazenar um valor que foge as características do valor estabelecido, o VBA irá retornar um erro.
          • se usar uma variável sem declarar o seu tipo, o VBA irá automaticamente tratá-la como do dipo Variant
          • após declarar uma variável como Object, deve-se atribuir o objeto a essa variável usando o comando Set = variável = Objeto


quinta-feira, 21 de agosto de 2014

Tabela Verdade - AND, OR e NOT

Nas linhas de código, muitas vezes é necessário tomar uma decisão a partir de mais de uma condição e nesses casos usamos os operadores lógicos de conjunção ( AND ) ou o de desjunção inclusiva ( OR ). 

Para negar uma condição, podemos usar o operador lógico de negação ( NOT ).

Abaixo as Tabelas Verdade para cada operador lógico.

       • Operador AND
Usamos o operador AND quando todas as condições ( 2 ou mais ), tem que ser verdadeiras para que se retorne Verdadeiro 











      • Operador OR
Usamos o operador OR quando pelo uma das condições precisa ser Verdadeira para que se retorne Verdadeiro









     • Operador NOT
O operador NOT inverte o resultado de uma condição obtida através dos operadores AND ou OR







quarta-feira, 20 de agosto de 2014

VBA - MsgBox


A função MsgBox() pode ter diversas possibilidades de combinações de botões de acordo com os valores ou constantes informadas no código.
A linha de código da função MsgBox() pode ser escrita de duas formas, porém possuem o mesmo efeito:

• MsgBox "Exemplo", 0, "Live Brain Tutoriais"
• MsgBox "Exemplo", vbOkOnly, "Live Brain Tutoriais"

Para ambos os casos, será exibida a seguinte Caixa de Mensagem:



Abaixo a lista completa das combinanações de botões disponíveis nas Caixas de Mensagens e seus respectíveis valores e constantes:


 Abaixo os ícones disponíveis

É possível combinar valores para exibir botões e avisos na MsgBox().

Exemplo 1: Botões Anular, Repetir e Anular e o ícone Exclamação
MsgBox "Exemplo", vbAbortRetryIgnore + vbExclamation, "Título" 

Exemplo 2: Botões Sim e Não e o Ícone Interrogação
MsgBox "Exemplo", vbYesNo + vbQuestion, "Título"

Alfabelo NumLock

A grande maioria conhece o comando Alt + 167, onde a combinação 167 é digitada no teclado NumLock e que resulta no caracter º ou a combinação Alt + 166 que se refere ao ª

Porém, o total de combinações possíves e que retornam um caracter válido é de 256

Então, para facilitar eu montei a lista abaixo com todos os caracteres disponívies.