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_p10
Quer receber novidades e e-books gratuitos?

Tutorial de Programação VBA – Access – Parte 10 - Funções, procedimentos e eventos com VBA

Objetivos:

Esta é a Parte 10 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.

Funções, procedimentos e eventos com VBA

Introdução

Neste tópico (que se estenderá pelas próximas partes do tutorial), apresentarei uma série de aspectos que vão além do básico do VBA. Iniciarei falando um pouco mais sobre tipos de dados e funções para conversão de tipos. Este tópico é de grande importância, principalmente quando criamos código que efetua cálculos, como por exemplo o cálculo do imposto em um volume de dados do contribuinte.

Depois passaremos a analisar uma série de funções internas do VBA. São funções que fazem parte do Microsoft Access, como por exemplo a função Date(), que retorna a data do sistema. Na seqüência, aprenderemos a criar nossas próprias funções e Sub-rotinas. Aprenderemos as diferenças entre uma Sub-rotina e uma função, e quando utilizar uma ao invés da outra. Mas isso tudo já é assunto para várias partes deste tutorial.

Tipos de dados e funções para conversão de tipos

Nesta parte do tutorial, você aprenderá a determinar qual o tipo de dado que está armazenado em uma variável, bem como a converter valores de um tipo para outro, utilizando as funções para conversão de tipos.

Determinando o Tipo de Dados contido em uma variável

Existem diversas funções, que permitem que seja determinado o tipo de valor contido em uma variável. Existem diversas aplicações para este tipo de função. Por exemplo, ao digitar dados em um formulário, podemos utilizar uma função para determinar se os valores digitados pelo usuário, não apresentam problemas, isto é, se são valores válidos, para o tipo de dados definido no campo. Por exemplo, o usuário pode ter digitado, por engano, texto em um campo que deve conter valores numéricos.

A função IsArray

Um Array é um tipo especial de variável, a qual pode armazenar diversos valores em uma única variável. De uma forma simples, um Array é um conjunto, um vetor. Por exemplo, poderíamos ter uma variável Array na qual são armazenados todos os códigos de tributo, válidos. Cada valor armazenado no Array é um elemento do conjunto. Um outro exemplo: Poderíamos criar um Array para armazenar os nomes dos meses do ano. Com isso teríamos um Array de 12 elementos.

Cada elemento de um Array, é acessado através do nome da variável Array e de um índice. O índice inicia em zero e não em um.

Por isso se tivermos um Array de 10 elementos, teremos o elemento 0, o elemento 1, o elemento 2, e assim por diante, até o elemento 9. O fato do índice começar com 0, influencia na hora que formos declarar um Array. Para declarar um Array chamado produtos, com 20 elementos, utilizaríamos a seguinte declaração:

     Dim produtos(19)

O 19 significa que temos 20 elementos (sempre um a mais do que o número que aparece na declaração), isto é, do elemento 0, indicado por produtos(0), até o elemento 20, indicado por produtos(19).

No exemplo a seguir, temos um exemplo simples de utilização de Array:

'Declara um Array de 7 posições
'Como a primeira posição é a posição zero,
'Indicamos o tamanho como 6, o que significa
'da posição 0 até a posição 6 = 7 elementos.

Dim Dias(6)

'Atribuímos valores para os dias da semana

Dias(0)= "Segunda-feira"
Dias(1)= "Terça-feira"
Dias(2)= "Quarta-feira"
Dias(3)= "Quinta-feira"
Dias(4)= "Sexta-feira"
Dias(5)= "Sábado"
Dias(6)= "Domingo"

'Agora utilizamos um laço For...Next
'Para criar uma String, com o conteúdo
'Do Array Dias.

For i=0 to 6
     mensagem = mensagem & "Dia: " & i+1 & " " & Dias(i)& Chr(13)
Next

'Utilizamos uma MsgBox, para exibir a mensagem
'com o conteúdo do Array Dias.

MsgBox mensagem

Exercício: Abra o formulário Teste no modo Estrutura (ou outro formulário qualquer, de qualquer banco de dados no Access, conforme descrito nas primeiras lições deste tutorial), crie um botão chamado ExArray e associe o código deste exemplo, ao evento Ao clicar deste botão. Teste o funcionamento do código.

Utilizamos a função IsArray, para determinar se uma variável do tipo Variant (lembre que todas as variáveis do VBA, são do tipo Variant), está armazenando um Array.

Utilizamos a seguinte sintaxe:

     IsArray(NomeDaVariável)

A função IsArray retorna verdadeiro se a variável for um Array, e falso caso contrário.

Vamos alterar um pouco o exemplo anterior, adicionando o seguinte comando, ao final da listagem.:

     MsgBox IsArray(Dias)

o resultado seria o indicado na Figura a seguir:



A função VarType

Podemos utilizar a função VarType, para determinar o subtipo de uma variável. Como todas as variáveis são do tipo Variant, o subtipo pode ser utilizado para determinar o tipo de dado armazenado na variável. Passamos para a função, o nome de uma variável ou expressão. A função retorna um número inteiro que indica o subtipo da variável.

A sintaxe da função é a seguinte:

     VarType(NomeDaVariável)

ou

     VarType(expressão)

Na Tabela a seguir temos os códigos de retorno da função VarType:

Tabela - Valores de retorno da função VarType

Valor Descrição
0 Vazio (não inicializado)
1 Nulo (dados não válidos)
2 Inteiro
3 Inteiro longo
4 Número de precisão simples
5 Número de precisão dupla
6 Monetário
7 Data
8 Texto
9 Objeto de automação
10 Erro
11 Boleano
12 Variant (somente é utilizado com Arrays de variantes)
13 Um objeto para acesso a dados.
17 Byte
8192 Array

No exemplo a seguir, temos um exemplo de utilização da função VarType

Dim x,y,z
Dim a, b
Dim c(20)
Dim mensagem As String

x=12
y=23.456
y=123456789
a="Este é um valor de texto !"

‘Utilizamos a função Date( ), para capturar a data do sistema.

b=Date()

mensagem = "Tipo da variável x: " & Vartype(x) & Chr(13)
mensagem = mensagem & "Tipo da variável y: " & Vartype(y) & Chr(13) mensagem = mensagem & "Tipo da variável z: " & Vartype(z) & Chr(13) mensagem = mensagem & "Tipo da variável a: " & Vartype(a) & Chr(13) mensagem = mensagem & "Tipo da variável b: " & Vartype(b) & Chr(13) mensagem = mensagem & "Tipo da variável c: " & Vartype(c) & Chr(13)

MsgBox mensagem

Ao executar este exemplo, obteremos o resultado indicado na Figura a seguir:



Observe, principalmente, no tipo da variável z, o qual retornou 0. Isto significa que a variável z está vazia, ou seja, não foi inicializada. Este resultado está coerente com a Tabela anterior. Também podemos salientar o retorno para a variável b, o qual retornou 7, indicando que o valor armazenado nesta variável é do tipo Data, o que também está coerente com a Tabela anterior, uma vez que usamos a função Date() , para armazenar a data do sistema, na variável b. Finalmente observe o valor de retorno para a variável c, o qual retornou 8192, indicando que a variável c é um Array. Este resultado está coerente com a Tabela anterior, e com a declaração: Dim c(20), a qual declarou a variável c como sendo um Array.

Muitas são as aplicações práticas para a função VarType, dentre as quais podemos destacar a validação dos dados digitados em um formulário.

Exercício: Abra o formulário Teste no modo Estrutura (ou outro formulário qualquer, de qualquer banco de dados no Access, conforme descrito nas primeiras lições deste tutorial), crie um botão chamado ExVarType e associe o código deste exemplo, ao evento Ao clicar deste botão. Teste o funcionamento do código.

A função IsDate

A função IsDate recebe uma variável ou expressão como argumento, e determina se a variável ou expressão é uma data válida, ou pode ser convertida para uma data válida. Caso o argumento passado seja uma data válida, a função retorna Verdadeiro, caso contrário, retorna Falso. Podemos utilizar esta função, por exemplo, para verificar se o usuário digitou uma data válida, em um campo de um formulário.

A sintaxe da função IsDate é a seguinte:

     IsDate(NomeDaVariável)

ou

      IsDate(expressão)

A seguir temos um exemplo de utilização da função IsDate.

If IsDate(Me![DataDeEntrada]) Then
      MsgBox "Você digitou uma data válida !"
Else
      MsgBox "Data inválida, digite novamente !"
      Me![DataDeEntrada] = Null
      Me![DataDeEntrada].SetFocus
End If

Exercício: Abra o formulário Teste no modo Estrutura (ou outro formulário qualquer, de qualquer banco de dados no Access, conforme descrito nas primeiras lições deste tutorial), crie um botão chamado ExIsDate e associe o código deste exemplo, ao evento Ao clicar deste botão. Crie um campo do tipo Caixa de Texto, onde o usuário pode digitar uma data. Nomeie este campo como DataDeEntrada. Teste o funcionamento do código.

A função IsEmpty

A função IsEmpty recebe uma variável ou expressão como argumento, e determina se, em algum momento, foi atribuído algum valor para a variável ou expressão. Caso tenha sido atribuído algum valor, a função retorna Verdadeiro, caso contrário, retorna Falso. Podemos utilizar esta função, por exemplo, para verificar se um campo de digitação obrigatória, como por exemplo o nome, não foi deixado em branco.

A sintaxe da função IsEmpty é a seguinte:

     IsEmpty(NomeDaVariável)

ou

     IsEmpty(expressão)

A seguir temos um exemplo de utilização da função IsEmpty.

'Vamos declarar uma variável x, que nunca
'Será utilizada no nosso Script

Dim a, b, c
Dim x

a=10
b=23
c=a+b

If IsEmpty(x) Then
      MsgBox "A variável x, não foi utilizada !"
End If

A variável x foi declarada porém não foi inicializada, com isso possui está vazia, logo a função IsEmpty(x) irá retornar Verdadeiro.

A função IsNull

A função IsNull recebe uma variável ou expressão como argumento, e determina se, em algum momento, foi atribuído o valor Null para a variável ou expressão. Caso tenha sido atribuído o valor Null, a função retorna Verdadeiro, caso contrário, retorna Falso. Para atribuirmos Null para uma variável, utilizamos a seguinte sintaxe:

     NomeDaVariável = Null

IMPORTANTE: Uma variável com valor Null, não é a mesma coisa que uma variável com valor zero, ou uma variável de texto com tamanho zero. Quando é atribuído o valor Null para a variável, esta continua existindo na memória, porém sem nenhum valor definido.

A sintaxe da função IsNull é a seguinte:

     IsNull(NomeDaVariável)

ou

     IsNull(expressão)

A seguir temos um exemplo de utilização da função IsNull.

' Vamos declarar uma variável x, e atribuir
' Null, para a variável.

Dim x

x = Null

     If IsNull(x) Then
          MsgBox "A variável x é Nula !"
     End If


Este exemplo produz o seguinte resultado:



A função IsNumeric

A função IsNumeric recebe uma variável ou expressão como argumento, e determina se o valor atribuído à variável ou expressão é numérico, ou pode ser convertido para numérico. Caso o valor seja numérico, ou possa ser convertido, a função retorna Verdadeiro, caso contrário, retorna Falso.

A sintaxe da função IsNumeric é a seguinte:

     IsNumeric(NomeDaVariável)

ou

     IsNumeric(expressão)

A seguir temos um exemplo de utilização da função IsNumeric.

Dim x,y,z

x=123

'Atribuo um valor que não pode ser convertido
'para numérico

y = "Riachuelo - 80"

z = Date()

mensagem = "Valor de x: " & x &" É numérico ? " & IsNumeric(x)& Chr(13)
mensagem = mensagem & "Valor de y: " & y &" É numérico ? " & IsNumeric(y)& Chr(13)
mensagem = mensagem & "Valor de z: " & z &" É numérico ? " & IsNumeric(z)
MsgBox mensagem

Exercício: Abra o formulário Teste no modo Estrutura (ou outro formulário qualquer, de qualquer banco de dados no Access, conforme descrito nas primeiras lições deste tutorial), crie um botão chamado ExIsNumeric e associe o código deste exemplo, ao evento Ao clicar deste botão. Teste o funcionamento do código.

Cabe salientar a utilização da função Date(), para capturar a data do sistema, e atribuir esta data à variável z. Observe que esta data não foi considerada um valor numérico para a função IsNumeric.

A função IsObject

A função IsObject recebe uma variável como argumento, e determina se o valor atribuído à variável é um Objeto Activex, se for um objeto Activex, a função retorna Verdadeiro, caso contrário, retorna Falso.

A sintaxe da função IsObject é a seguinte:

     IsObject(NomeDaVariável)

ou

     IsObject(expressão)

Conclusão:

Nesta parte do tutorial, falei sobre as funções para detectar o tipo de dado armazenado em uma variável. Estas funções são muito utilizadas em rotinas de validação de dados, para garantir que os dados digitados em um campo, sejam do tipo correto.

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