Escolar Documentos
Profissional Documentos
Cultura Documentos
Educao Distncia
Aulas online ou a prtica de aprendizagem distncia, atravs de ambientes
virtuais e redes de computadores interligadas para fins educacionais e culturais,
nada mais do que o meio mais prtico e inteligente de proliferao de
conhecimento.
Atravs de ambientes virtuais e sistemas inteligentes, possvel adquirir
conhecimento de forma total ou gradativa.
Esse nosso conceito de educao, em tempo real, total ou gradativo, quando
quiser e onde quiser e acima de tudo, da forma que quiser!
Nossa Misso
O Grupo iPED foi lanado com o intuito de aprimorar e disseminar o conceito de
ensino
a
distncia.
Com a implantao do ensino a distncia, pesquisas recentes registram que as
pessoas alavancam os resultados dos mdulos de treinamento em at 70%,
eliminando as distncias geogrficas e proporcionando a melhoria da gesto do
conhecimento e dos recursos humanos por competncias.
Pensando nisso o iPED presta esse servio a todos, para que a excluso digital
seja cada vez menor e com o passar do tempo ela desaparea completamente.
Esse nosso objetivo, essa nossa misso, e esteja certo que vamos conseguir!
Fabio Neves de Sousa
Diretor Geral - Grupo iPED
Certificao
O conceito de reconhecimento virtual concedido atravs de avaliao feita pelo
sistema inteligente, que do inicio at o fim do curso est avaliando cada aluno em
suas atitudes individuais e em comparao as atitudes do coletivo. Ao termino do
contedo avaliado o aluno submetido a uma avaliao final que nada mais serve
do que comprovar a avaliao do desempenho dele ao longo de toda a trajetria
do curso.
Certificado Especial
- Tramas em linhas personalizadas
- Tarja de Segurana
- Tinta Luminescente
- Selo de Segurana
- Numerao Intransfervel
INDCE
INTRODUO ....................................................................................................................... 7
FORMULRIO ..................................................................................................................... 17
LGICA DE PROGRAMAO .......................................................................................... 33
TRABALHANDO COM SQL ............................................................................................... 44
MENU EDITOR .................................................................................................................... 55
CAIXA DE FERRAMENTAS E CONTROLE ...................................................................... 61
DATA CONTROL................................................................................................................. 63
FUNES ............................................................................................................................ 94
COMPILANDO PROJETOS .............................................................................................. 109
CRIANDO PROJETOS ...................................................................................................... 114
PROJETO CALCULADORA .......................................................................................... 115
FORMATAR TELEFONE ............................................................................................... 119
SCREEN SAVER ........................................................................................................... 120
APLICATIVO FATORIAL ............................................................................................... 122
IMPRIMIR COM OBJETO PRINTER ............................................................................. 123
VISUALIZAR IMAGEM ................................................................................................... 125
INTRODUO
Podemos criar atalhos na rea de trabalho para acessar nossos trabalhos com agilidade.
APRESENTAO
Veremos como simples abrir o Visual Basic 6.0, para isso Clique no Boto Iniciar >
Aponte em Todos os Programas > clique em Microsoft Visual Basic 6.0 > Clique na
opo Microsoft Visual Basic 6.0.
Clique na opo
Microsoft Visual
Basic 6.0
Com o Microsoft Visual Basic 6.0 voc pode criar aplicativos para gerenciar toda uma
empresa.
Utilizado para
gerar arquivos
executveis.
Repare que na tela do novo projeto tem algumas opes de criao, a mais utilizada a
opo Standard EXE.
BARRA DE MENUS
Um menu exibe uma lista de comandos de acesso a recursos que o aplicativo oferece,
atravs dos mesmos podemos ter acesso a todas as ferramentas do Visual Basic 6.0.
Atravs da Barra de Ferramentas Padro, voc ter acesso aos recursos bsicos, criar
novos trabalhos, abrir documentos, executar projetos, salvar, enfim tudo para agilizar o
seu dia-a-dia.
BARRA DE TTULO
CAIXA DE FERRAMENTAS
10
11
Dica: Para inserir controles ActiveX na Caixa de Controles, clique com o boto direito
em uma rea vazia da Caixa de Controles. Clique em Components.
Defina o controle que voc deseja inserir, e clique em OK.
12
EXPLORADOR DE OBJETOS
Tambm conhecido como janela de
objetos, responsvel por manter uma
relao dos arquivos que compe o
seu projeto, ou seja, seria uma espcie
de Windows Explorer da aplicao.
JANELA DE PROPRIEDADES
Cada componente que compe o seu
projeto (aplicativo que est sendo
desenvolvido) possui caractersticas
determinadas por voc. Imagine um
boto de comando, este
dever ter uma altura e largura, uma
cor, uma determinada fonte para o texto
que estiver dentro do mesmo, uma
aparncia, Isso so propriedades, e as
mesmas so controladas nesta janela.
Quando selecionarmos um determinado
objeto/componente,
automaticamente sero exibidas as suas
propriedades.
13
EDITOR DE CDIGOS
Componente/objeto
Evento
Atravs do editor, voc ir escrever as linhas de cdigo, como voc pode observar, no editor
poderemos escolher o componente/objeto a ser trabalhado e o respectivo evento a ser
codificado.
No grfico acima, temos selecionado o objeto formulrio (FORM ), no evento "ao carregar"
( LOAD ), ou seja, a codificao que ser realizada quando o formulrio for carregado. Aos
poucos iremos nos acostumando com o trabalhado de codificao dos componentes/objetos e
seus respectivos eventos.
TECLAS DE ATALHO
Assim como os demais programas da microsoft, ao trabalhar com o Visual Basic 6.0,
voc poder utilizar o Mouse, bem como substituir o mesmo com teclas de atalho.
Abaixo tem uma tabela com as teclas de atalho do VB 6.0
14
Combinao do
teclado
Utilidade/funo
CTRL + BREAK
CTRL + DELETE
CTRL + DOWN
ARROW
CTRL + END
CTRL + F
CTRL + H
CTRL + HOME
CTRL + I
CTRL + J
CTRL + LEFT
ARROW
CTRL + N
CTRL + PAGE
DOWN
CTRL + PAGE UP
CTRL + RIGHT
ARROW
CTRL + SHIFT + F2
CTRL + SHIFT + F9
CTRL + SHIFT + I
CTRL + SHIFT + J
CTRL + SPACEBAR
CTRL + UP ARROW
CTRL + Y
CTRL + Z
END
F1
F2
F3
F7
F8
F9
Define/remove um breakpoint
PAGE UP
15
SHIFT + F8
16
CTRL + C
CTRL + X
CTRL + V
CTRL + Z
TAB
F4
FORMULRIO
17
INTRODUO
Qual a primeira coisa que o VB faz quando voc inicia um projeto do tipo Standard EXE ?
Ele cria um formulrio ( form1) inicial para sua aplicao. Embora possamos criar
aplicaes Windows sem formulrios, essa no a regra geral. A grande maioria das
aplicaes Windows utilizam formulrios como base principal.
No VB no diferente, voc geralmente usa um formulrio e nele inclui labels, caixas de
texto , caixas de combinao , frames , etc... Ento voc deve tratar com carinho os
formulrios do seu projeto , e , far isto se conhecer pelo menos as propriedades bsicas
relacionadas aos formulrios.
CONHECENDO UM FORMULRIO
01 Menu de controle - Neste menu, permitido
restaurar, mover, redimensionar, minimizar,
maximizar e fechar o formulrio.
02 Ttulo - Representa um texto que ser exibido na
barra de ttulos do formulrio, normalmente utilizado
para identificar o nome ou funo do aplicativo.
03 Barra de ttulos - Representada por uma barra de
colorao diferenciada do restante do formulrio, ela
exibe o ttulo do formulrio, bem como poder ser
usada para arrastar este para outra posio na tela
do micro.
04 Botes de minimizar, restaurar e fechar o
formulrio, padro como em qualquer outra aplicao
for windows.
05 Bordas do formulrio - Especificam os limites
visuais do mesmo.
06 rea de trabalho do formulrio - toda a rea na
qual poderemos trabalhar com os componentes de
nossa aplicao que devero ser colocados sobre o
formulrio.
18
PROPRIEDADES DO FORMULRIO
As propriedades so as caractersticas de um componente/objeto, como os de um
formulrio. Qualquer objeto do VB dever ter no mnimo 1 propriedade.
Veremos as principais propriedades do formulrio.
Barra de propriedades, para ter
acesso
s
propriedades
do
formulrio o mesmo deve estar
selecionado.
Propriedade
Funo
BackColor
BorderStyle
Valor
Descrio
0 - none
1 - Fixed
Single
2 - Sizable
3 - Fixed
dialog
19
4 - Fixed
TollWindow
5 - Sizable
ToolWindow
Caption
ControlBox
Caso setado para true, o menu de controle estar visvel, caso contrrio,
o menu de controle no estar visvel.
Fore Color
Height
Icon
Left
MaxButton
MinButton
Name
ScaleMode
20
ShowInTaskbar
Width
0 - normal
1 - Minimized
2 - Maximized
21
APARNCIA DO FORM
Podemos definir a aparncia do nosso formulrio usando a propriedade BorderStyle.
Abaixo temos os estilos possveis:
0 - None
1 - Fixed Single
2 - Sizable
3 - Fixed Dialog
4 - Fixed Toolwindow
5 - Sizable Toolwindow
22
EVENTOS DO FORMULRIO
Assim como propriedades, os formulrios possuem tambm eventos, ou seja, o
Windows se utiliza de eventos (ao abrir, ao fechar, ao minimizar) para controlar as
reaes e execues do sistema. Vale lembrar tambm que ao mover o mouse, ou
simplesmente ao clicar sobre um determinado componente, o Windows gera uma
mensagem que descreve a sua ao, ou seja, o evento realizado. Essas mensagens
so enviadas a uma fila e em seguida ao controle apropriado, que ao receber uma
mensagem, gera o evento apropriado.
Evento
Ao
Active
Deactive
DragDrop
Load
Resize
Unload
MTODO DO FORMULRIO
Um mtodo uma subrotina que executada por um objeto ao receber uma
mensagem.
23
PrintForm
Refresh
Ao
Quando um formulrio escondido ( Hide ) ele removido da
tela e sua propriedade Visible definida como False.
Executa ao mover o mouse.
Permite que voc execute uma imagem de um Windows Form em
tempo de execuo.
Permite que voc imprima uma imagem de um Windows Form
em tempo de execuo.
Atualiza no momento da execuo.
Passa o focus no momento da execuo.
Setfocus
Show
24
MDIFORM
Um MDI (Multiple-document-interface)
form uma janela que atua como um
pando de fundo de uma aplicao e o
container para os formulrios que tm a
propriedade MDI Child definida como
True.
MDICHILD
Uma aplicao pode ter somente um
objeto MDIForm e muitos formulrios
MDI Child .Se um formulrio MDI tiver
um menu o menu do formulrio MDI
Child ir substitu-lo quando estiver ativo.
Ao minimizar um formulrio MDI ele ser
exibido como um cone dentro do
MDIForm.
Veja abaixo:
Ao executar o projeto o MDI Form exibe o seu menu. Quando ativamos o MDI Child o
menu do MDI Form substituido pelo do MDIChild.
25
26
27
4. Observe que, ao incluir um componente no formulrio, este passa a ser o objeto ativo,
e a janela Properties automaticamente passa a exibir as propriedades do objeto
selecionado, neste caso, o componente CommandButton;
28
5. Nosso primeiro passo alterar o texto que aparece dentro do componente. Isto
realizado na propriedade Caption do CommandButton. Altere esta para
"Finaliza". Neste ponto, seu formulrio dever ter o aspecto seguinte:
6. Agora deveremos programar o evento do clique do mouse sobre o boto, para que,
neste caso, o sistema seja finalizado. Para acionar a janela de cdigos, j na
programao destinada ao objeto desejado, neste caso o CommandButton, basta dar
um duplo clique no objeto, ou seja, d um duplo clique no objeto CommandButton.
Sua rea de trabalho passar a ter o seguinte aspecto:
29
30
Usado para
encerrar um
programa
9. Agora, tente executar o sistema. Para isso, basta clicar sobre o boto START da
barra de ferramentas, que est em destaque na figura a seguir:
10. Ao executar o seu sistema, sua rea de trabalho ter o seguinte aspecto:
11. Observe que, em tempo de execuo, o formulrio que antes era cheio de
pontinhos em seu interior, agora passa a ter uma cor uniforme. Os pontinhos so
apresentados ao desenvolvedor, para facilitar o enquadramento de componentes
dentro do mesmo. Quando voc clicar sobre o boto "finaliza", observe que o sistema
ser encerrado e o controle passar novamente ao VB6, possibilitando que voc
continue o desenvolvimento de seu sistema.
Formulrio
Sem ser
executado
32
Formulrio
Depois de
executado
LGICA DE
PROGRAMAO
33
TIPOS DE DADOS
Os dados dividem-se em trs categorias: numrico, string e especial. Se voc quiser trabalhar com
um nmero, voc precisar usar um que se encaixe em uma das categorias de tipo de dados do
Visual Basic. Se quiser trabalhar com dados de texto, precisar usar uma string. Outros dados
podem se encaixar em uma das vrias categorias de tipos de dados especiais, como um item que
representa um valor do tipo caixa de verificao True ou False.
Vamos conhecer alguns tipos de dados mais abaixo:
Byte (byte): utilizado para criao de DLLs e para OLE. Ocupa de memria 1 byte.
Boolean (boleano): os valores que este tipo de dado poder ter so True ou False / Yes ou No.
Quando variveis do tipo numrico se convertem para booleanas, tornam-se 0 se forem falsas e
assumem qualquer outro valor para um resultado verdadeiro. Quando a varivel booleana se
converte para outro tipo, o False se torna 0, enquanto o True assume o valor de 1. Ocupa de
memria 2 bytes.
Integer (inteiro): nmeros sem decimais, cujo intervalo de ocorrncia dever ser do 32.768 a
32.767. Ocupa na memria 2 bytes.
Long (inteiro longo): qualquer tamanho de nmeros sem decimais. Ocupa 4 bytes de memria.
Single (simples): nmeros com at sete dgitos significativos. Ocupa 4 bytes de memria.
Double (duplos): nmeros com at quinze dgitos significativos. Ocupa 8 bytes de memria.
Currency (monetrio): armazena nmeros com preciso de 15 casas esquerda do ponto decimal,
e quatro casas direita. Esse tipo de dado til para clculos que envolvam dinheiro. Ocupa 8
bytes de memria.
Date (data): representa uma data que poder estar entre os dias 01/01/100 a 31/12/9999, e tempo
que abrange o intervalo de 0:00:00 a 23:59:59. Ocupa 8 bytes de memria.
Object (objeto): uma varivel declarada como object poder referir-se a qualquer objeto criado pela
aplicao. Ocupa na memria 4 bytes.
String (simples): Valores numricos que variam de 3,408823E+38 para 3,402823E+38. Varivel
ou fixo. O tamanho que ocupa na memria: para string varivel de 10 bytes mais o tamanho da
string e para string fixo apenas o tamanho da string.
Variant (variante): Dados de qualquer tipo usados para controle e outros valores para os quais o
tipo de dados desconhecido.
34
%
&
!
#
$
@
sem sufixo
VARIVEIS
So espaos reservados na memria ram do computador para guardar informaes que sero
utilizadas durante o cdigo do programa. Podem ter valores de diversos tamanhos e tipos, tais
como nmeros inteiros, nmeros reais, caracteres, frases, enfim, diversas coisas.
Ex: Imagine que voc tem uma estante para guardar diversos livros, quando voc compra os livros,
os coloca na estante e quando quer ler um dele, o pega na estante... com o computador a mesma
coisa, a memria RAM a estante e as variveis e constantes so os livros, voc cria elas (compra)
e as joga na memria. Claro que o computador faz isso sozinho, voc s precisa dizer o nome da
varivel e o tipo dela.
Para declarar variveis, voc precisa dar a uma varivel tanto um nome quanto um tipo. Os nomes
de variveis podem ter at 40 caracteres, e precisam comear com uma letra.
Determinado o nome da varivel, poder declarar seu tipo usando um sufixo.
Para que sua aplicao seja eficiente e clara, o mais indicado especificar o tipo da varivel, pois
do contrrio, a varivel ser vista pelo Visual Basic como do tipo Varinat, e este tipo poder ocupar
mais memria do que o necessrio.
DECLARANDO VARIVEL
Com o comando Dim
Veja a sintaxe:
Dim <nome da varivel> As <tipo da varivel>
Exemplo:
Dim Apostilas As String
Voc pode declarar sua varivel dentro de uma procedure, na seo General de um formulrio, ou
dentro de um arquivo mdulo.
Exemplo de uma varivel do tipo Integer dentro de uma procedure.
Private Sub Command1_Click()
Dim Livros As Integer
Livros = Val(txt1.Text)
End Sub
Atribuindo Valores
A atribuio de valores no Visual Basic feita com o sinal de igualdade =
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br
35
CONSTANTES
Constante uma rea reservada para armazenamento e uma informao que no se alterar em
todo o ciclo de vida, ou seja, tem sempre o mesmo valor dentro de um sistema.
Utilizamos constantes para substituir no programa a apario freqente de valores, que durante a
execuo do aplicativo no sofrem alteraes. Uma constante poder ser uma string, um valor
numrico, outra constante, ou qualquer combinao que inclua os operadores lgicos ou
aritmticos.
Declarando Constante
Constantes podem ser declaradas dentro de uma procedure, no arquivo de mdulo ou na seo
General do formulrio.
A sintaxe para a declarao de constante :
Const nome_da_constante = valor
Exemplo:
Private Sub Command1_Click()
Const Livros = "Consultar
Command1.Caption = Livros
End Sub
36
CONDIO IF / ELSE
A condio verificada a cada passagem pela estrutura IF (se). Se a condio for satisfeita (V),
ento a lista de instrues que se encontra entre chaves ser feita. Se a condio NO for satisfeita
(F), ento sero feitas as instrues existentes logo ap o fecha chaves.
Seu aplicativo pode analisar dados e tomar decises com base nessa anlise.
If utiliza os operadores de comparao. If realiza uma entre duas possveis aes do cdigo,
dependendo do resultado da comparao.
Se um teste comparativo for verdadeiro, o corpo de uma instruo If executado.
If testeComparativo Then
Uma ou mais instrues Visual Basic
End If
End If permite que o Visual Basic saiba onde o corpo de uma instruo If termina.
Variao 1
IF ELSE
if (condio)
{
lista de instrues
}
else
{
lista de instrues
}
......
37
O comando1 s ser executado se a condio for verdadeira, caso contrrio, se a condio for
falsa, ser executado o comando2.
Sintaxe:
SE condio
ENTO INCIO
comando1
comando2
comando3
FIM
SENO INCIO
comando4
comando5
FIM
Var X, Y, A, B : Integer;
38
ELSE PENDENTE
Else pendente acontece quando ele se encontra "perdido" dentro do cdigo, ou seja, ele no sabe a
qual If pertence.
Exemplo de Else pendente:
Uses Crt;
Var X, Y, A, B : Integer;
INICIO
Readln (X,Y,A,B);
If (X > Y) Then
If (A > B) Then
Writeln ('A maior que B')
Else Writeln ('A no Maior que B');
End.
Para que no haja duvidas a qual If o Else pertence utilize os delimitadores INICIO - END.
ESTRUTURA CASE
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br
39
O comando CASE importante para a estruturao de um programa que possua diversas opes
de execuo, tornando-o bem legivel e estruturado, evitando o uso do IF de forma repetida. O
comando CASE trs junto com ele uma restrio, onde, seletor tem que ser do tipo char, integer
ou boolean.
Sintaxe:
CASE seletor OF
alvo1 : comando1;
alvo2 : comando2;
alvo3 : comando3;
END;
Sintaxe:
CASE seletor OF
alvo1 : INICIO
... instrues ...
FIM;
alvo2 : comando2;
alvo3 : INICIO
... instrues ...
FIM;
ELSE comando4;
END;
Exemplo:
{ Um simples exemplo de como se trabalha com a Estrutura Case }
Uses Crt;
Var X : Integer;
Inicio
Readln (X);
Case X Of
1 : Writeln ('Ola Mundo'); { E o valor de X for igual a 1, ir executar essa linha }
2 : Writeln ('GNOIA'); { X = 2, essa linha ser executada }
3 : Writeln ('Software Livre'); { X = 3 - essa linha ser executada }
End;
End.
Exemplo:
Uses Crt;
Var Y, X : Integer;
Inicio
Readln (X, Y);
Case X Of
1 : Inicio
Y := 4;
Writeln ('Entrou no Primeiro alvo');
Fim;
2 : Inicio
40
ARRAYS
Arrays so matrizes, ou variveis indexadas, em Visual Basic, declaradas de forma semelhante a
outras variveis. Arrays podem ser de qualquer tipo, inclusive tipos de dados definidos pelo usurio.
Tambm podem ser estticos, locais ou Pblicas.
Unidimensionais: Dim Soma (1 To 2). Este array ser constitudo por vinte nmeros:
Soma(1), Soma (2) ... Soma (20).
Bidimensionais: Public Mult (1 To 15, 1 To 15).
Multidimensionais: O Visual Basic adimite at 60 dimenses.
O Visual Basic permite a declarao de arrays dinmicos, que so usados quando no se sabe
antecipadamente o tamanho de um array. A utilizao de arrays dinmicos envolve dois passos:
1. Declarar o array sem fazer referncia s dimenses: Dim DynArray ().
2. Redimensionar o array. Este passo s pode ser feito dentro de uma procedure:
ReDim DynArray (1 To 10).
A palavra reservada ReDim apaga todos os valores anteriores do array. Para evitar isto,
podemos usar a palavra Preserve: ReDim Preserve DynArray 1 To 10). Somente o limite superior
da ltima dimenso de um array dinmico pode ser alterado quando se usa Preserve.
No necessrio que o limite inferior de uma dimenso seja 1. Podemos declarar um array
da seguinte forma: Dim Matriz (-10 To 35, -5 To 20). Para no perdermos de vista quais so os
limites das dimenses de arrays, podemos usar duas funes:
UBound: retorna o maior ndice disponvel para a dimenso indicada. Sintaxe: UBound (array,
dimenso);
LBound: retorna o menor ndice disponvel para a dimenso indicada. Sintaxe: UBound (array,
dimenso).
Exemplo: Seja a matriz M(-3 To 4, -2 To 5). UBound (M, 1) retorna 4. LBound (M, 2) retorna
-2.
Em Visual Basic, arquivos que excedem 64 kBytes so denominados Huge Arrays (Arrays
Enormes). O limite mximo para estes arrays de 64 Mbytes (ou a memria do computador). No
existe nenhuma declarao especial para Huge Arrays. O Visual Basic cuida de tudo sozinho.
INSTRUES
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br
41
42
With
With objeto
[instrues]
End With
Descrio
Adiciona dois valores
Subtrai um valor de outro
Multiplica dois valores
Divide um valor por outro
Eleva o valor a uma potncia
Concatena dois strings
Exemplo:
Resultado = 6 / 3 + 5 + 4 * 2
O Visual Basic computa a diviso primeiro que aprece a esquerda da multiplicao. Se a
multiplicao aparecesse esquerda da diviso, o Visual Basic faria primeiro a multiplicao.
Depois o Visual Basic calcula a adio mostrando a resposta final, em Resultado.
43
TRABALHANDO
COM SQL
44
INICIANDO SQL
A SQL - Structured Query Language (Linguagem de Consulta Estruturada) praticamente surgiu com
a terceira gerao de banco de dados, os RDBs-Relational Databases, ou seja, banco de dados
relacionais.
A SQL uma linguagem padro para o gerenciamento de banco de dados, e no nem
estruturada (Structured) e no esta limitada somente a consultas (Queries) em banco de dados.
Na verdade podemos dizer que SQL uma linguagem para definir e manipular bancos de dados
relacionais e praticamente todos os produtos de bancos de dados relacionais que esto no mercado
suportam a SQL.
Infelizmente ainda no existe uma padronizao a nvel da SQL; embora a portabilidade seja
grande, dependendo do produto que se est utlizando (Oracle, Sybase, Informix, etc.) haver
diferenas na sintaxe das declaraes. Atualmente o padro SQL-92 o mais utilizado.
No nosso caso usaremos as declaraes SQL utilizadas no Microsoft Access, pois estaremos
trabalhando a nvel de desktop.
Ao utilizar a SQL em seu cdigo voc ter muitos benefcios;
Seus projetos tambm ficaro mais rpidos,pois geralmente a SQL e mais rpida
que o mtodo procedural via DAO.
A portabilidade sua aplicao ser maior visto que a SQL aceita pelos principais bancos de dados relacionais (Oracle,Sybase,etc.).
Creio que estes motivos j so suficientes para voc dar uma olhada no que a SQL pode fazer por
voc e por seu cdigo.
Com a SQL podemos realizar as seguintes tarefas:
Se voc tem uma cpia do Access, sua incurso no mundo SQL ser facilitada, pois o Access
praticamente escreve em SQL para voc, depois voc s precisar copiar e
colar as instrues no seu cdigo em Visual Basic. Mas vale a pena aprender pelo menos as
instrues mais importantes em SQL. Com isso voc j conseguira usar muito do seu potencial.
Talvez o maior problema para os que j utilizavam uma linguagem procedural (Basic, Clipper,
Fortran, Cobol, etc), ao lidar com a SQL seja o seguinte: Voc tem que mudar a forma de pensar ao
programar com SQL.
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br
45
Estas linguagens ditas da terceira gerao, so caracterizadas por comandos que dizem ao
computador exatamente o que fazer em estruturas sequenciais executadas passo a passo. So
chamadas de linguagens procedurais.
A SQL,por outro lado, caracterizada por ser uma linguagem declarativa, ou seja, ela diz ao
computador o que quer que ele faa, sem se preocupar de que forma o trabalho ser realizado, o
que importa o resultado.
A SQL composta de subconjuntos de comandos para executar diferentes tarefas. Assim podemos
dizer que a SQL suporta :
Uma linguagem de definio de dados ( DDL )
Uma linguagem de manipulao de dados ( DML )
Uma linguagem de segurana de dados ( DCL )
A DDL permite criar e modificar e excluir a estrutura de uma tabela e seus ndices; seus principais
comandos so:
CREATE - Cria tabelas, campos e ndices num banco de dados.
DROP
- Remove tabelas e ndices de um banco de dados.
ALTER - Altera a estrutura de uma tabela de um banco de dados.
A DML permite manipular os dados (Inserir, Excluir e Atualizar) bem como executar consultas
atravs da recuperao de subconjuntos de dados para posterior tratamento. seus principais
comandos so:
SELECT - Seleciona um conjunto de registros de uma ou mais tabelas usando um critrio
especfico.
INSERT - Adiciona dados a uma tabela.
UPDATE - Atualiza os dados de uma tabela segundo critrios especficos.
DELETE - Remove registros de uma tabela.
A DCL permite a implementao da segurana interna do Banco de dados.Seus comandos
principais so GRANT e REVOKE, mas como no suportada pela plataforma Access, no iremos
utiliz-la.
46
TblCursos
TblNotas
TblProfessor
codcurso
nomecurso
codprofessor
codaluno
codcurso
nota
ano
bimestre
Observacao
codprofessor
nome
endereco
telefone
A instruo CREATE TABLE ir criar a tabela tblprofessor, com as definies da lista de campos
entre parnteses, separados um dos outros por vrgulas. Cada descrio de campo possui duas
partes: o nome do campo e o tipo de dados os quais so separados por um espao entre si.
47
Tipos de Dados
SQL
BIT
BYTE
COUNTER
CURRENCY
DATETIME
SINGLE
DOUBLE
SHORT
LONG
LONGTEXT
LONGBINARY
TEXT
A clusula CONSTRAINT utilizada para definir uma chave primria e uma chave externa.
Note que existe uma relao de um para muitos entre a tabela TblProfessor e a tabela TblCursos,
sendo que a coluna codprofessor da tabela TblCursos, uma chave estrangeira (Foreign Key - FK
)
ALTERANDO TABELAS
Para alterar uma tabela , adicionando ou excluindo um campo da tabela, usamos a instruo:
ALTER TABLE
1- Na incluso de um campo temos que especificar o NOME, TIPO e TAMANHO do campo, e usar
a clusula ADD COLUMN.
48
Assim para incluir o campo CIDADE com 50 caracteres na tabela tblalunos fazemos:
CRIANDO NDICES
Podemos criar um ndice de um nico campo ou um ndice de vrios campos com a instruo:
CREATE INDEX.
Na criao do ndice devemos informar o nome do ndice o nome da tabela e pelo menos um
campo a ser includo como ndice. Assim se quisermos criar um ndice pela data de nascimento na
tabela tblalunos fazemos:
CREATE INDEX nascimento ON tblalunos(nascimento)
A instruo abaixo cria um ndice chamado series, usando os campos serie e periodo da tabela
tblalunos, sendo que serie ser usado na ordem ASCENDENTE e periodo na ordem
DESCENDENTE.
CREATE INDEX series ON tblalunos(serie ASC, periodo DESC)
EXCLUINDO NDICES
Para excluir um ndice de uma tabela utilize a instruo DROP INDEX Devemos informar o nome do
ndice e o nome da tabela. Assim para excluir o ndice serie criando anteriormente fazemos:
DROP INDEX series ON tblalunos
49
50
MTODOS DE QUERYDEF
Os mtodos usados pelas QueryDefs so: Execute e OpenRecordset.
O mtodo Execute usado para executar comandos de ao como DELETE ou UPDATE que no
retornam um conjunto de registros , usado tambm para criar tabelas e ndices via instruo SQL.
O mtodo OpenRecordset usado para retornar um conjunto de registros como resultado da
consulta.
Assim para deletar todos os alunos inativos, fazemos:
Dim db as Database
Dim qd as QueryDef
Dim dyn as Recordset
Dim Sql as String
set db=DbEngineworkspaces(0).Opendatabase(app.path & "\escola.mdb")
sql= "DELETE * FROM tblalunos WHERE ativo=False "
set qd=db.CreateQueryDef("Apaga_alunos", Sql )
qd.Execute
51
INSTRUO SQL
Uma instruo SQL consiste em trs partes:
As declaraes de parmetros
A instruo manipulativa
As declaraes de opes
Para termos uma idia do seu poder , imagine que temos que atualizar o campo valor em 10% de
uma tabela com diversos registros. Na abordagem procedural teriamos os seguines passos a
seguir:
1.
2.
3.
4.
5.
Abrir a tabela.
posicionar o ponteiro no incio da tabela.
atualizar o campo valor em 10%.
mover o ponteiro para o prximo registro.
continuar a atualizao do campo valor at o final da tabela.
Funo
SELECT
UPDATE
52
TRANSFORM
DELETE
FROM
INSERT INTO
53
5-) Seleciona os campos "Primeiro nome" e "Sobrenome" para Empregados cujos sobrenomes
comeam pela letra S.
SELECT [Primeiro nome], [Sobrenome] FROM Empregados WHERE [Sobrenome] Like 'S*'
FROM - Indica as tabelas utilizadas como fonte de dados
WHERE- Especifica as condies que os registros devem satisfazer para compor o subconjunto de
dados.
54
MENU EDITOR
55
56
Checked:se for true, uma marca de verificao aparecer ao lado do item de menu;
Enabled: se for true, o item de menu estar disponvel;
Visible: se for true, o item estar visvel.
Estas propriedades podem ser alteradas em tempo de execuo ou de projeto. , ainda, possvel
anexar teclas de atalho a cada item de menu.
A maneira mais fcil de trabalhar com menus construir "Arrays de Menus", ou seja, os diferentes
sub-itens de um mesmo menu sero diferenciados apenas por um ndice, tendo o mesmo nome.
A tabela 7 abaixo exemplifica esta construo para o caso de um menu chamado "Arquivo".
Tabela 7
Legenda
Nome
ndice
Arquivo
mnuArquivo
--- Abrir
mnuArquivoItem
--- Salvar
mnuArquivoItem
--- -
mnuArquivoItem
--- Sair
mnuArquivoItem
O item principal do menu no tem ndice. Os sub-itens so diferenciados por ndices, tendo o
mesmo nome e sendo "indentados" em relao ao item principal. O Visual Basic admite at cinco
sub-itens, mas este limite raramente usado.
A indentao dois itens feita por meio das setas da Janela de Projeto de Menus. A barra de
separao criada com um hfen ( - ) e no admite cdigo associado. O ndice, entretanto,
obrigatrio.
57
CONSTRUINDO MENU
Podemos usar menus para implementar uma verso aperfeioada do nosso exemplo em vez de
usarmos botes de comando, usaremos itens de menus para realizar as operaes.
Inicie um novo projeto, pressione Ctrl-E para entrar na Janela de Projeto de Menus e adicione os
itens de menu conforme a tabela abaixo.
Tabela 8
Legenda
Nome
ndice
Tecla de Atalho
Arquivo
mnuArquivo
--- Abrir
mnuArquivoItem 0
Ctrl + F12
--- Salvar
mnuArquivoItem 1
Shitf + F12
--- -
mnuArquivoItem 2
--- Sair
mnuArquivoItem 3
Ctrl + Z
Editar
mnuEditar
--- Cortar
mnuEditarItem
Ctrl + X
--- Colar
mnuEditarItem
Ctrl + V
--- Apagar
mnuEditarItem
Ctrl + P
Fontes
mnuFontes
--- Courier
mnuFontesItem
--- Helvtica
mnuFontesItem
--- Roman
mnuFontesItem
--- Modern
mnuFontesItem
--- Script
mnuFontesItem
--- Symbol
mnuFontesItem
--- System
mnuFontesItem
--- Terminal
mnuFontesItem
58
Aps terminar o menu, mude a legenda do formulrio para "Editor". O resultado final deve ser
semelhante a imagem abaixo:
sendo muito mais rpido do que uma estrutura correspondente construda com comandos If ... Then
... Else.
O cdigo do menu Fontes pode ser implementado rapidamente. A diferena que estaremos
usando a propriedade Checked dos menus, para identificar qual a fonte atualmente selecionada.
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br
59
60
CAIXA DE
FERRAMENTAS
E CONTROLE
61
CONTROLE LABEL
Este controle responsvel por exibir um texto no formulrio, ou seja, uma etiqueta. Este texto
utilizado para somente leitura, e poder ser alterado atravs de sua propriedade Caption,
tanto em tempo de desenvolvimento quanto em tempo de execuo.
Caption
Autosize
WordWrap
62
EXEMPLO:
63
CONTROLE COMMANDBUTTON
Os botes so utilizados para extrair respostas simples do usurio ou ainda para chamar
determinadas funes dentro de um formulrio, como por exemplo, uma funo para limpar o
contedo de uma caixa de edio, finalizar o sistema, etc... Tais procedimentos sero realizados
aps o click no boto, ou seja, aps o evento OnClick do mesmo.
Caption
Style
Enabled
Ex:
64
CONTROLE TEXTBOX
Utilizadas para proporcionar a entrada de dados, atravs do teclado, por parte do usurio.
Name
Text
MaxLenght
Passwordchar
Multiline
Locked
65
EXEMPLO:
66
5 Seu nome ser adicionado em textbox, o boto limpar tudo, apaga o contedo do campo.
67
Funo
Name
Caption
Value
Style
Ex:
Private Sub Command1_Click()
If Option1.Value = True Then
Print "Primeiro"
ElseIf Option2.Value = True Then
Print "Segundo"
End If
End Sub
68
Controle Checkbox
Este controle muito similar ao boto de opo, testando-se a propriedade VALUE de ambos
para saber se um controle est ticado ou no. As diferenas fundamentais entre estes dois
controles so:
1) As caixas de seleo representam controles simples;
2) As caixas de seleo no so mutuamente exclusivas;
Sendo assim, um boto pode possuir dois estados : True ou False (selecionado ou no), j uma
caixa de seleo poder ter at trs estados: selecionada, no selecionada e acinzentada (nem
ativada e nem desativada, indicando que aquela opo no poder ter o seu contedo alterado
pelo usurio).
EXEMPLO:
Private Sub Check1_Click()
If Check1.Value = 1 Then
Check1.Caption = "Checked"
Else
Check1.Caption = "Unchecked"
End If
End Sub
69
CONTROLE LISTBOX
Este controle tem a finalidade de exibir ao usurio uma lista de dados. Exemplo: Uma lista de
todos os estados do Brasil, que ser disponibilizada ao usurio no ato do preenchimento do
estado residencial do mesmo em sua ficha cadastral. Esta lista poder oferecer ao usurio a
oportunidade de seleo de um ou mais de seus dados para que esta seleo seja utilizada em
processamento posterior. Os dados de uma lista no podem ser editados de forma direta, ou
seja, na prpria lista, pois como o nome diz, um controle de seleo e no de alterao de
dados.
Objetivo
List
ListCount
MultiSelect
Selected
Sorted
A propriedade list dever ser utilizada com uma indexao de itens, ou seja, as posies dos
valores de uma caixa de lista se iniciam em zero e vo at o nmero total de itens menos 1. Este
ndice dever ser utilizado tambm na propriedade Selected, conforme observamos no exemplo a
seguir:
List1. Selected(4)=true
70
1
2
71
72
CONTROLE COMBOBOX
Um ComboBox exibe um campo de Editar de caixa de texto combinado com um ListBox,
permitindo ao usurio para selecionar itens da lista ou para Enter texto novo.
EXEMPLO1:
Dim i As Integer
i = ComboBox1.Items.Add("novo item")
ComboBox1.SelectedIndex = i
end sub
EXEMPLO2:
2
1
73
1 Primeiramenta vamos criar uma guia nova, basta clicar com o boto direito do mouse na
caixa de ferramentas de controle, e depois clique em Add Tab.
2 Se abre a caixa de entrada onde possvel que adicionar um nome a guia, neste exemplo
digite: banco dados, e depois clique em OK.
74
4 Agora basta
adicionar os novos
componentes.
5 Clique no(s)
componente
desejado e depois
em OK.
75
PERSONALIZANDO A IDE
Primeiramente, com o Visual Basic em execuo, clique na opo de menu TOOLS e no menu
que se abre, selecione a opo OPTIONS. Ser aberta uma janela com o ttulo de OPTIONS,
iremos a seguir estudar as principais guias e opes da mesma.
GUIA EDITOR
O frame "Code Settings" possui opes que iro afetar de forma direta o trabalho de edio
do seu cdigo. As principais opes so:
76
Auto Sintaxe Check - quando selecionada, faz com que o editor verifique se existem
erros no cdigo durante o modo de projeto. Aconselhamos que esta opo esteja
ticada;
Require Variable Declaration - quando selecionada, faz com que as variveis a serem
usadas no seu cdigo, tenham que, ser declaradas antecipadamente. Quando
selecionado, o VB automaticamente ir colocar uma linha do tipo OPTION EXPLICT na
seo GENERAL DECLARATION de todos os formulrios, evitando assim que se use
variveis de forma incorreta ou esquecendo de declarar as mesmas;
Auto List Members - quando selecionada, faz com que o editor exiba uma lista de
elementos pertencentes ao objeto que est sendo digitado/editado no editor de cdigos;
Auto Quick Info - quando selecionada, exibe informaes sobre funes e seus
parmetros, uma espcie de Help on-line de grande valia a usurios menos experientes;
Auto Data Tips - quando selecionada, alterna a exibio do valor de uma varivel
embaixo do cursor;
Auto Indent - quando selecionada, proporciona o recuo automtico de trechos de
cdigo. Opo muito til para a programao estruturada, onde por exemplo, os
comandos pertencentes a um determinado Loop, estejam recuados com relao ao
restante do cdigo, facilitando assim a anlise do mesmo.
Tab Width - nesta caixa o usurio poder definir o nmero de espaos que ir servir
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br
77
78
GUIA GENERAL
As opes de configurao desta guia so utilizadas por programadores mais experientes, pois
permite o ajuste fino de vrios aspectos, como deteco de erros e compilao, etc... Por se
tratar de opes avanadas no iremos entrar em detalhes a respeito da mesma. Mais adiante,
quando voc tiver maiores conhecimentos a respeito do VB, estaremos detalhando esta guia.
79
GUIA DOCKING
Esta guia possui as opes para determinar quais janelas do IDE estaro ancoradas.
80
GUIA ENVIRONMENT
No frame When Visual Basic Wizards, poderemos selecionar uma das duas opes
disponveis. Caso escolha a segunda ao invs da primeira, no ser mais exibido a janela
Project Wizard. Porm para usurios iniciantes, aconselhamos deixar o valor padro
marcado, ou seja, PROMPT FOR PROJECT;
Caso voc tenha seguido nossa sugesto, poder diminuir o nmero de Wizards exibidos na
janela inicial do Visual Basic, desmarcando alguns itens relacionados no Frame SHOW
TEMPLATES FOR.
No frame WHEN A PROGRAM STARTS, voc poder escolher a forma pela qual o VB ir salvar
as alteraes do seu projeto. A opo mais utilizada a PROMPT TO SAVE CHANGES, que far
com que o VB verifique se voc quer ou no salvar as alteraes do seu projeto sempre que seu
aplicativo for executado ou fechado atravs do IDE. J a opo DONT SAVE CHANGES, til
quando voc possui uma srie de projetos exemplos e que a maioria ou sua totalidade no
precisa ser salva.
81
GUIA ADVANCED
Nesta guia de avanados possvel adicionar cor de fundo na execuo do projeto, notificar itens
do projeto, aplicar Ambientes de desenvolvimento, e escolher editores externo.
82
DATA CONTROL
83
CONTROLE DE DADOS
A informao cdigo do cliente deve ser nica para cada cliente, ou seja, no poder haver
duplicidade no cdigo quando da importao dos dados.
As informaes referentes a cdigo, nome, endereo, cidade, cep e uf so obrigatrias.
sistema deve permitir incluir, excluir e localizar dados nos arquivos.
sistema ser desenvolvido em Visual Basic e usar o Controle de dados Vinculados para
gerenciar as informaes
Access, ou seja, os arquivos MDB, por isso voc pode criar o seu banco de dados usando tanto o
Visual Basic como o Microsoft Access.
1-Crie o seu banco de dados utilizando o Data Manager ou use o Microsoft Access e grave-o com o
nome de CONTROLE.MDB.
2-Crie uma tabela com o nome de Clientes com a seguinte estrutura:
84
Tipo de Dados
Tamanho
LONG INTEGER(*)
03
CARACTER
CARACTER
CARACTER
CARACTER
CARACTER
CARACTER
30
30
30
08
02
11
(*)Como cada cliente deve ter um cdigo nico garantindo assim a exata identificao do mesmo,
defina o tipo de dados para o campo cdigo como LONG INTEGER, e ative o atributo Counter e a
opo Required, dessa forma criamos um campo do tipo contador que o prprio sistema ir
controlar a cada incluso/excluso.
3-Defina um ndice para o campo codigo ativando as seguintes opes: Unique, Primary index,
Required.
Isto assegura que teremos uma chave nica para cada cliente cadastrado e nos fornece um ndice
que agiliza no processo de localizao das informaes.
Desenhar a interface da aplicao com o usurio
Desenhando a interface do sistema:
A tela principal de nossa aplicao dever ter o seguinte aspecto:
85
label6
Caption
"Cep"
Autosize
True
---------------------------------------------------------------------------------------------------------------label
Name
label7
Caption
"Telefone"
Autosize
True
---------------------------------------------------------------------------------------------------------------TextBox
Name
codigo
DataField
"Codigo"
DataSource
dtaCli
---------------------------------------------------------------------------------------------------------------TextBox
Name
nome
DataField
"Nome"
DataSource
dtaCli
---------------------------------------------------------------------------------------------------------------TextBox
Name
endereco
DataField
"Endereco"
DataSource
dtaCli
---------------------------------------------------------------------------------------------------------------TextBox
Name
cidade
DataField
"cidade"
DataSource
dtaCli
86
Name
87
Aps clicar no boto Incluir, voce pode digitar os dados referentes a cada cliente e a seguir clicar no
boto Gravar para gravar as informaes na sua tabela Clientes ou cancelar o processo de
incluso.
89
Neste cdigo verificamos se o nome do boto esta como Cancelar, em caso positivo, cancelamos
qualquer atualizao pendente atravs do metdo CancelUpdate.
Em seguida movemos o ponteiro de registros para o ltimo registro.
Finalmente habilitamos os botes Incluir, Excluir e Localizar e mudamos o nome do boto para
Sair.
Agora, se o nome do boto no for Cancelar solicitamos a confirmao para sair do Sistema(End)
ou abandonar a rotina(Exit Sub) e retornar ao sistema.
90
91
92
End Select
End Sub
A rotina acima utilizado para interceptar erros que ocorrem quando nenhum cdigo est sendo
executado.
Estes erros podem ocorrer quando a carga do formulrio ainda no estiver completa.
93
FUNES
94
PRINCIPAIS FUNES
Abs( )
Propsito: Aquisio de valor absoluto
Sintaxe: solucao = Abs(expressao)
A funo Abs( ) retorna o valor absoluto de expressao, dentro da varivel solucao. Esse valor
equivalente ao valor da expresso original, sem o sinal.
Asc( )
Propsito: Aquisio do nmero de caractere ANSI.
Sintaxe: solucao% = Asc(char$)
Nesta sintaxe, char$ um nico caractere. Se esse caractere for escrito literalmente, ele ter que
aparecer entre aspas.
A funo Asc( ) obtm o valor do cdigo ASCII (na realidade, ANSI) do caractere designado como
char$. Esse valor retornado dentro da varivel solucao%.
CCur( ), CDbl( ), CInt( ), CLng( ), CBng( ) e CVar( )
Propsito: Converso de contedo de varivel
Sintaxe: solucao = Ctipo(expressao)
Neste sintaxe, tipo a abreviao do tipo de varivel para o qual se est convertendo.
As funes Ctipo resolvem o valor lgico reduzido de expressao e ento convertem a expresso
para o tipo de varivel especificado, mesmo que esse tipo exija mais bytes que o necessrio para
representar o valor. O resultado precisa ser atribudo a uma varivel tendo um tipo equivalente ao
tipo para o qual se est convertendo.
Chr$( )
Propsito: Aquisio de caractere ANSI
Sintaxe: solucao$ = Chr$(expressao)
Nesta sintaxe, a expressao pode ser simplificada logicamente como um valor de cdigo ASCII
legtimo.
A funo Chr$ ( ) aceita o valor de nmero inteiro de expressao e procura o caractere de cdigo
ASCII(ANSI) equivalente a esse valor. Esse caractere retornado como o contedo de um s
caractere de solucao$.
CVDate( )
Propsito: Converso de variant para data
Sintaxe: assinatura = CVDate(valor#)
A funo CVDate( ) retorna um valor de data/hora convertido usando o parmetro valor#, dentro da
assinatura variant tipo7. O tipo de varivel de valor# precisa ser um tipo numrico, embora possa
ser qualquer tipo numrico.
DateSerial( ) e TimeSerial( )
Propsito: Aritmtica de data/hora
Sintaxe:
variant7 = dataSerial(ano, mes, dia)
variant7 = TimeSerial(hora, minuto, segundo)
A funo DateSerial ( ) avalia os trs parmetros que recebe, reduz logicamente cada um deles em
conjunto com os outros, e retorna uma data dentro de uma varivel variant do tipo7 (data).
Similarmente, TimeSerial( ) avalia os trs parmetros passados, os reduz logicamente comparandoos uns com os outros, e retorna uma hora dentro de uma varivel variant tipo7. Desta maneira, voc
pode determinar datas e horas relativas usando aritmtica.
DataValue( ) e TimeValue( )
Propsito: Numeralizao de data/hora
Sintaxe:
variant7 = DateValue(Date$)
variant7 = TimeValue(Time$)
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br
95
96
Format$( )
Propsito: Converso de valor para string
Sintaxe: string$ = Format$(valor[, {"tipoformato$" | descritor$}])
Nesta sintaxe, descritor$ uma srie de caracteres de diretivas e marcadores de posio escritos
em at trs grupos usando a seguinte sintaxe: descritorpos[; descritorneg[;descritorzero]]
A funo Format$( ) converte um valor numrico em uma string alfanumrica, da mesma forma que
a funo Str$( ). Se nenhum outro parmetro for especificado, a funo Format$( ) pra aqui; caso
contrrio, ela aplica um formato de aspecto a este valor. Esse formato pode ser um dos nomes de
tipo gerais tipoformato$ reconhecidos pelo interpretador, ou poder ser uma srie de caracteres
marcadores de posio descritor$ tiver que ser declarado dentro da funo, ele ter que aparecer
entre aspas; caso contrrio, voc pode atribuir antecipadamente o descritor a uma varivel string
usando uma equao.
FreeFile
Propsito: Aquisio de canal livre
Sintaxe: canal% = FreeFile
A funo FreeFile retorna o nmero de canal no aberto de valor mais baixo, na varivel canal%.
Voc pode ento usar essa varivel em uma declarao Open que pode vir a seguir. A funo
FreeFile no requer parnteses.
Hex$( )
Propsito: Traduo hexadecimal
Sintaxe: solucao$ = Hex$(exp_numerica)
A funo Hex$( ) descobre o valor no fracionrio de exp_numerica, arredonda esse nmero para
menos at o inteiro mais prximo, e encontra o valor hexadecimal (base 16) do nmero. Esse
nmero retornado como uma string, especialmente porque ele pode conter os dgitos de A a F (10
a 15).
Hour( ), Minute( ) e Second( )
Propsito: Representao de componenetes de tempo
Sintaxe:
variavel% = Hour(assinatura)
variavel% = Minute(assinatura)
variavel% = Second(assinatura)
Cada funo deste conjunto aceita um valor de dupla preciso como seu parmetro, com o formato
dos nmeros desse valor coincidindo com o formato de assinatura usado pela varivel interna Now.
A funo Hour( ) retorna a hora do tempo especificado em formato de 24 horas. Similarmente,
Minute( ) retorna o minuto do tempo especificado, e Second( ) retorna o segundo desse tempo.
Input$( )
Propsito: Aquisio de dados brutos
Sintaxe: sequencia$ = Input$(numcarac$, [#]canal%)
A funo Input$( ) usada na aquisio de dados brutos de um arquivo, cujos elementos de dados,
se existirem, no possam ser distinguidos uns dos outros de nenhuma maneira que o Visual Basic
imediatamente reconhea. Depois dos dados serem adquiridos, fica por conta do aplicativo VB fazer
sua interpretao e encontrar uma finalidade para eles.
A funo recupera um nmero numcarac% de caractres alfanumricos de um arquivo de dados que
tenha um nmero de canal% a ele alocado pela declarao Open para Input seqncial ou acesso
Binary. Ela move o ponteiro de arquivo atual para o byte seguinte ao ltimo lido por Input$( ). A
funo recupera a string e a atribui varivel de string string$. Cada byte da string recebida
tratado como um caractere alfanumrico que pode ser convertido em um valor entre 0 e 255 com a
funo Asc( ). Essa funo no est disponvel para arquivos abertos para acesso Random. O sinal
# antes de canal% opcional nessa funo.
InputBox$( )
Propsito: Chamada de painel textual
Sintaxe: resposta$ = InputBox[$] (mensagem$[, titulo$[, default$[, coordx%, coordy%]]])
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br
97
Int( )
Propsito: Trucagem numrica
Sintaxe: solucao% = Int(expressao)
A funo Int( ) arredonda o valor simplificado logicamente de expressao para menos at o nmero
inteiro mais prximo. O resultado desse arredondamento retornado na varivel solucao%.
IsDate( )
Propsito: Determinao do formato de assinatura de tempo
Sintaxe: booleano% = IsDate(parametro)
A funo IsDate( ) retorna uma valor True/False na varivel booleano%, refletindo se o parmetro
especificado pode ser interpretado legalmente como uma data VarType 7. Uma string ou valor com
tal formato pode ser atribuda diretamente a uma varivel no-declarada, e o interpretador responde
dando a esta o tipo 7 de variant automaticamente. Nessa situao, parmetro pode tanto ser um
valor numrico como uma string; a funo incapaz de gerar erros com base neste tipo de
parmetro. Valores numerais diretos, porm, muito provavelmente retonaro um valor False.
IsNumeric( ), IsEmpty( ) e IsNull( )
Propsito: Determinao do contedo de uma variante
Sintaxe: booleano% = IsNumeric(variant)
booleano% = IsEmpty(variant)
booleano% = IsNull(variant)
LBound( ) e UBound( )
Propsito: Aquisio dos limites de um array
Sintaxe: variavel% =LBound(array[, dimensao]) | variavel% =UBound(array[, dimensao])
As funes LBound( ) e UBound( ) retornam os limites inferior e superior, respectivamente, do array
especificado. Se a matriz for multidimensional, para retornar os limites de um nvel de dimenso, o
nmero desse nvel especificado como um segundo parmetro da funo. O nome de cada array
declarada sem parnteses.
LCase$( ) e UCase$( )
Propsito: Converso de minsculas e maisculas de string
Sintaxe:
string$ = LCase$(exp_string$)
string$ = UCase$(exp_string$)
98
99
LTrim$( ) e RTrim$( )
Propsito: Remoo de espaos
Sintaxe:
string$ = LTrim$(exp_string$)
string$ = RTrim(exp_string$)
Nesta sintaxe, exp_string$ qualquer expresso lgica contendo uma ou mais strings ou variveis
de string concatenadas.
A funo LTrim$( ) remove todos os espaos do lado esquerdo da string expressa. Da mesma
forma, a funo RTrim$( ) remove todos os espaos do lado direito da string expressa.
Mid$( )
Propsito: Aquisio de parte de uma string
Sintaxe: substring$ = Mid$(string$, pos_inic&, numero%)
A funo Mid$( ) extrai um numero% de caracteres de uma string em ordem qa partir da string
maior string$, comeando na posio de caractere pos_inic& contando a partir da esquerda de
string$. Os caracteres extrados so ento atribudos varivel de string menor substring$.
Oct$
Propsito: Converso octal
Sintaxe: solucao$ = Oct$(exp_numerica)
A funo Oct$( ) descobre o valor no fracionrio de exp_numerica, arredonda esse nmero para
menos at o inteiro mais prximo, e encontra o valor octal (base 8) do nmero. Embora a soluo
s contenha dgitos de 0 a 7, ela retornada dentro de uma varivel de string solucao$.
QBColor( )
Propsito: Simulao de cores CGA
Sintaxe: cor& = QBColor(registro%)
A funo QBColor( ) retorna um valor inteiro longo que representa, para o Visual Basic, uma mistura
de cores aproximadamente equivalente ao valor da cor registro% usado no Microsoft QuickBASIC
para plotagem na tela CGA. O parmetro registro% pode elevar qualquer dos valores da tabela
43.1. Nesta os valores so mostrados ao lado de seus equivalentes RGB( ) funcionais.
RGB( )
Propsito: Representao de valor de cor
Sintaxe: cor& = RGB(red%, green%, blue%)
Onde red%(vermelho), green%(verde) e blue%(azul) so inteiros no intervalo de 0 a 255,
representando a intensidade de cada cor primria na mistura.
A funo RGB( ) retorna um nico valor inteiro longo que uma combinao matemtica dos trs
parmetros de entrada e que representa, para o interpretador Visual Basic, um valor especfico de
mistura de cores. Cada parmetros representa a quantidade de sua cor primria tica usada na
mistura. Quanto maior o valor do parmetro, mais intensa a cor primria na mistura.
Rnd( )
Propsito: Gerao de nmero aleatrio
Sintaxe: numero# = Rnd[(processo#)]
Nesta sintaxe, processo# qualquer nmero de ponto-flutuante e preciso dupla, cujo sinal, quando
processo# expresso, crucial para o processo de gerao.
A funo Rnd( ) retorna o que aparenta ser um nmero aleatrio de ponto-flutuante e preciso
dupla entre 0 e 1. O valor de processo# afeta o processo de gerao do
nmero aleatrio. Um nmero "aleatrio" particular gerado para cada valor de processo# passado
funo, se processo#<0. Uma seqncia particular de nmeros aleatrios pode existir em um
aplicativo para cada gerao numrica, situao na qual a mesma srie gerada cada vez que o
aplicativo executado. O prximo nmero dessa srie pode ser gerado se processo#>0 ou se
processo# for omitido. O nmero aleatrio anterior gerado novamente se processo# = 0.
Seek( )
100
101
102
103
MTODOS
.Additem
Propsito: Manuteno de entradas de lista
Sintaxe: Caixalist.AddItem texto$ [, indice%]
O mtodo .AddItem coloca o contedo textual de texto$ na caixa de listagem ou de combinao que
tenha o nome de controle Caixalist. Por default, o texto colocado no final da lista. Opcionalmente,
a posio do novo item na lista pode ser especificada por um nmero como indice%. Os itens de
uma lista so contados ou indexados comeando por 0; o valor de indice% no deve ser maior que
o nmero de itens da lista menos um. O mtodo s pode adicionar itens a uma caixa de listagem
individualmente, e no em grupos ou matrizes.
.Arrange
Propsito: Regulao de filha MDI
Sintaxe: [paiMDI.]Arrange layout onde layout pode ter um dos seguintes valores:
.Circle
Propsito: Plotagem de elipse
Sintaxe: [Objeto.]Circle Step] (twipx!, twipy!), raio![, cor&] [, ang_inicia1!, ang_fina1!)[, aspecto!]
O mtodo .Circle plota uma srie de pontos em uma curva, todos os quais geometricamente
convergem de um ponto central especificado como (twipx!, twipy!). Por default, esse pontos so
dispostos para formar um crculo; entretando, especificando os trs ltimos parmetros individuais,
voc pode plotar em vez disso um arco ou elipse.
A menos que aspecto! seja especificado, cada ponto da srie ser plotado a uma distncia de raio!
twips das coordenadas do centro. Se cor& for especificada, a srie ser plotada na cor especifica.
As funes RGB( ) e QBColor podem ser usadas para determinar o valor de cor&. Se cor&
omitida, a srie plotada com a cor usada como definio da propriedade.ForeColor do objeto que
est recebendo a plotagem.
.Clear
Propsito: Limpeza de uma caixa de listagem
Sintaxe 1: [Formulario.]Caixalist.Clear
O mtodo .Clear esvazia todo o contedo da caixa de listagem antecedente. A propriedade
.ListCount da caixa de listagem definida como zero.
.Clear
Propsito: Apagamento do contedo do clipboard
Sintaxe: Clipboard.Clear
O mtodo .Clear limpa o contedo atual do clipboard do sistema.
.Cls
Propsito: Limpeza de rea de figura
Sintaxe: [objeto.]Cls
O mtodo .Cls limpa qualquer contedo impresso ou plotado, textual ou grfico, do objeto grfico
especificado. Se objeto. no estiver especificado, o formulrio no qual a procedure .Cls aparece
ser limpo.
104
.Drag
Propsito: Ativao do arraste manual
Sintaxe: Controle.Drag inteiro%
O mtodo .Drag usado para iniciar ou parar manualmente o processo de arraste de um controle,
seja qual for a definio de .DragMode desse controle. Isso especialmente til se o .DragMode do
controle estiver definido como 0 (manual) e, por default, ele no puder ser arrastado. O valor de
inteiro% pode ser qualquer dos seguintes:
0 Cancela o arraste do controle especificado
1 Inicia o arraste do controle especificado, quando o mtodo .Drag aparecer em um procedimento
de evento do controle antecedente.
2 Termina o arraste do controle e sinaliza com um evento _DragDrop para esse controle.
.EndDoc
Propsito: Ejeo de documento na impressora
Sintaxe: Printer.EndDoc
O mtodo .EndDoc chamado para sinalizar o trmino do documento interno do aplicativo e para
enviar o sinal de ejeo da ltima pgina para o Print Manager do Windows. A propriedade .Page
do documento interno do aplicativo automaticamente redefinida como 1.
.GetData( )
Propsito: Aquisio de dados do clipboard
Sintaxe: Objeto.Picture = clipboard.GetData (formato%)
O mtodo .GetData atua como uma funo ao retornar o contedo .Image ou .Picture do clipboard
do sistema e atribuir esse contedo como propriedade .Picture do Objeto especificado. Se
formato% for declarado como formato de dados 2,3 ou 8, o contedo do clipboard ser atribudo
propriedade .Picture, independente desses dados terem sido criados como dados de imagem.
.GetFormat( )
Propsito: Aquisio de tipo contedo do clipboard
Sintaxe: booleano% = Clipboard.GetFormat (formato%)
O mtodo .GetFormat atua como um funo ao retornar na varivel inteira booleano% um valor
verdadeiro/falso que indica se os dados residindo atualmente no clipboard do sistema so do
formato% especificado.
.GetText( )
Propsito: Aquisio de texto do clipboard
Sintaxe: string$ = Clipboard.GetText (formato%)
O mtodo .GetText atua como uma funo, retornando o atual contedo textual de clipboard do
sistema dentro de string$. Se formato% for especificado como tipo 1 ou &HBF00 (vnculo dinmico),
o contedo do clipboard ser retornado em string$, quer o formato seja ou no prprio para esse
contedo.
.Hide
Propsito: Suspenso de operao de formulrio
Sintaxe: [nomeform.].Hide
O mtodo .Hide pega um formulrio sendo mostrado e o remove da tela at ordem contrria. O
formulrio continua a ocupar virtualmente as mesma coordenadas na tela. Os controles do
formulrio
oculto
podem
ainda
ser
referidos
no
cdigo-fonte.
Em
outras palavras, a operao do formulrio pelo programa no suspensa, mas o usurio no pode
oper-lo.
.Line
Propsito: Plotagem de linha geomtrica
Sintaxe: [Objeto.]Line [[Step] (twipx1!, twipy1!)] [Step] (twipx2!, twipy2!) [, cor&][, B][F]
O mtodo .Line define o valor de cor de uma srie linear de todos os twips endereveis na
memria, se estendendo das coordenadas (twipx1!, twipy1!) at (twipx2!, twipy2!). Os dois pares de
coordenadas so sempre separados por um hfen. O valor de cor para cada twip da srie definido,
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br
105
.Point
Propsito: Aquisio de valor de cor
Sintaxe: cor& = [Objeto.]Point(twipx!,twipy!)
O mtodo .Point atua como uma funo ao retornar no inteiro longo cor& o valor de cor RGB do
pixel mais prximo das coordenadas de twip especificadas. No entanto, o
mtodo especificado pelo uso de sintaxe orientada para objeto. Se Objeto. for includo na
instruo, o sistema de coordenadas do objeto especificado ser usado. Caso contrrio, o sistema
do formulrio que atualmente contm a instruo ser assumido.
.Print
Propsito: Exibio de texto
Sintaxe: [objeto.] Print {expressao1{;|,} expressao2{;|,} ... expressaon{,|,}] na qual cada expresso
consiste em qualquer expresso matemtica ou de string logicamente interpretvel.
O mtodo.Print exibe a forma logicamente reduzida de cada expresso da lista de expresses.
Se o mtodo.Print aparecer em uma linha por si s, um retorno de carro com um avano de linha
ser gerado. Em outras palavras, a "cabea de impresso" movida para a extremidade esquerda
pelo retorno de carro e uma linha para baixo pelo avano de linha - com o que acontece quando
voc pressiona a tecla Return em uma mquina de escrever eltrica. A posio do cursor virtual
ajustada para o incio da prxima linha abaixo da anteriormente impressa.
.Pset
Propsito: Definio de valor de cor de pixel
Sintaxe: [Objeto.]PSet [Step] (twipx!, twipy!) [, cor&]
106
instrues para poupar tempo. Se o objeto especificado no tem pendentes tais atualizaes, nada
acontece.
.RemoveItem
Propsito: Manuteno de entradas na lista
Sintaxe: Caixalist.RemoveItem indice%
O mtodo .RemoveItem elemina da caixa de listagem ou de combinao especificada o item
endereado por indice%. O mtodo s pode remover itens de uma caixa de listagem
individualmente, e no em grupos ou matrizes.
.Scale
Propsito: Estabelecimento de sistema de coordenadas varivel
Sintaxe: [Objeto.]Scale [(origx!, origy!) - (extx!, exty!)]
O mtodo .Scale define o par de coordenadas do canto superior esquerdo do objeto antecedente
como (orgx!, origy!) e par de coordenadas do canto inferior direito do objeto como (extx!, exty!). Se
ambos os pares de coordenadas forem omitidos, a escala do objeto ser redefinida para a escala
default de coordenadas de twips.
.SetData
Propsito: Colocao de dados no clipboard
Sintaxe: Clipboard.SetData Objeto.{Image | Picture} [, formato%]
O mtodo .SetData atribui ao clipboard do sistema o .Picture (mapa de bits no formulrio) ou .Image
(mapa de bits na memria) referido usando sintaxe orientada para objeto. Por default, a imagem
assumida como sendo um mapa de bits padro do formato de dados 2; entretanto, os formatos 3 e
8 tambm so suportados.
.SetFocus
Propsito: Definio do indicador manual
Sintaxe: [Controle.]SetFocus
O mtodo .SetFocus aponta manualmente o controle antecedente como sendo o controle ativo,
dando-lhe portanto o foco.
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br
107
108
COMPILANDO
PROJETOS
109
CRIANDO EXECUTVEL
110
SETUP WIZARD
Voc acabou de desenvolver uma aplicao em Visual Basic , testou , depurou e,
finalmente, est pronto para distribu-la aos usurios finais.
Geralmente tais usurios no possuem o Visual Basic instalado em suas mquinas.
(voc deve sempre considerar essa situao como a padro.)
Voc ter ento que distribuir com sua aplicao uma srie de arquivos DLL,
e, se sua aplicao usar controles personalizados, ter tambm que distribuir os
arquivos de controle VBX/OCX que utiliza.
Para isto ou voc cria um programa de instalao com o Setup Wizard que
determina os arquivos que voc precisa distribuir ou tenta determinar por si
mesmo quais os arquivos precisam ser distribuidos.
Gerando o assistente de Instalao e os discos para distribuio.
Vamos descrever passo a passo o processo de criao do programa de instalao
e da gerao dos discos de distribuio para um projeto: agenda.vbp.
Este projeto foi desenvolvido com os seguintes controles
CrystalReports,CommomDialog, Image , Picture , ComboBox alm de usar
a DAO e os arquivos de banco de dados padro MDB.
Vamos supor que a distribuio ser feita em CD-ROM, iremos usar o
Setup Wizard da versao 6.0.
1-Clique em Microsoft Visual Basic Tools, em seguida clique em Package & Deployment Wizard:
Clique em
Package
111
112
113
CRIANDO
PROJETOS
114
PROJETO CALCULADORA
Esta precisando de uma calculdora simples para usar como utilitrio no seu programa VB.
- Inicie um novo projeto no VB e mude o nome do formulrio padro para frmcalculadora.
- Insira uma caixa de texto e alguns botes de comando conforme layout abaixo:
115
116
End Sub
Private Sub Operator_Click(Index As Integer)
Operator(4).SetFocus 'Volta o Controle para matriz de Numeros
If UltimaEntrada = "NUMS" Then
NumOps = NumOps + 1
End If
If NumOps = 1 Then
Op1 = Val(Visor.Caption)
ElseIf NumOps = 2 Then
Op2 = Val(Visor.Caption)
Select Case FlagOperacao
Case "+"
Op1 = Op1 + Op2
Case "-"
Op1 = Op1 - Op2
Case "X"
Op1 = Op1 * Op2
Case "/"
If Op2 = 0 Then
MsgBox "Erro, Diviso por zero impossvel", 48, "Spasso Calc"
Else
Op1 = Op1 / Op2
End If
Case "="
Op1 = Op2
End Select
Visor.Caption = Format$(Op1)
NumOps = 1
End If
UltimaEntrada = "OPS"
FlagOperacao = Operator(Index).Caption
End Sub
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br
117
118
FORMATAR TELEFONE
Voc pode usar o evento Validate do controle TextBox para fazer a formatao da entrada de
dados feitas pelo usurio. Como exemplo vou mostrar como formatar o nmero do telefone
informado em uma caixa de texto. (O evento presente somente na verso 6 do VB).
1 - Inicie um novo projeto no VB e no formulrio padro insira duas labels duas caixas de
texto e um boto de comando, conforme layout abaixo:
O layout do formulrio
A entrada inicial
O valor formatado
119
SCREEN SAVER
Vamos criar um programa no Visual Basic e transform-lo em um Screen Saver.
Primeiro vamos criar um programa que v enchendo a tela de pontos (o cdigo foi tirado de um
exemplo do prprio Visual Basic), e , a seguir faz-lo funcionar como um Screen Saver.
Para isto basta atentar-mos para os seguintes detalhes:
1-Ao criar o programa o form dever ocupar toda a janela e no ter ttulo, nem os botes para
maximizar ou minimizar devem estar habilitados.
Valores das propriedades do Form1
-----------------------------------------Propriedade
Valor
-----------------------------------------Caption
""
ControlBox
False
BackColor
&H00000000& (preto)
MaxButton
False
MinButton
False
WindowState
2
--------------------------------------------
120
4-Como o Screen Saver pode ser ativado mais de uma vez , insira o cdigo
a seguir no evento Load do formulrio para evitar mais de uma instncia
de seu aplicativo na memria.
Private Sub Form_Load()
If App.PrevInstance Then
End
End If
End Sub
121
7-Agora ative a opo File, Make EXE File e informe o nome do seu Screen Saver.
8-Troque a extenso EXE do arquivo gerado para SCR, e copie o arquivo
para o diretrio \WINDOWS\SYSTEM
9-Agora configure a proteo de tela no seu Windows selecionando o nome do seu programa
como o protetor de tela.
APLICATIVO FATORIAL
Para testar o uso das estruturas de repetio, vamos escrever um pequeno aplicativo para calcular
o fatorial de um nmero inteiro (n!), que o resultado da multiplicao dos nmeros inteiros de 1 at
n. Exemplo:
5 = 1 X 2 X 3 X 4 X 5 = 120
Veja o modelo e a tabela de propriedades no incio da prxima pgina. A codificao do aplicativo
envolve apenas um evento: quando o usurio clicar em cmdCalcular ou teclar Enter o fatorial do
nmero digitado em txtNmero ser calculado e exibido em lblFatorial.
1 - Inicie um novo projeto:
2 - Formate o formulrio e altere as propriedades dos objetos como a seguir:
122
3 - Abra a janela Cdigo no evento Click do boto Calcular e escreva os comandos para o clculo:
Private Sub cmdCalcular_Click()
Dim vNmero As Double, vFatorial As Double
vNmero = Val(txtNmero.Text)
If vNmero < 0 Then
Beep
lblFatorial.Caption = Empty
Else
If vNmero = 0 Or vNmero = 1 Then
lblFatorial.Caption = 1
Else
vFatorial = 1
Do
vFatorial = vFatorial * vNmero
vNmero = vNmero - 1
Loop Until vNmero <= 1
lblFatorial.Caption = Str(vFatorial)
End If
End If
txtNmero.SetFocus
End Sub
123
124
VISUALIZAR IMAGEM
Num formlrio insira os seguintes controles: 1CommonDialog, 1Image e 1 CommandButton.
Inicialmente vamos mudar As propriedades dos controles:
Na propriedade Strech da Image1, altera para True, evitando que a imagem auto-redimensione,
tomando o tamanho natural.
Na propriedade Caption do Command1, altere para Abrir Imagem.
Agora escreva As seguinte linhas de cdigo:
Private Sub Command1_Click( )
On Error Resume Next 'Evita exibio de erro gerado pelo Visual Basic
With CommonDialog1
'Agiliza a programamo
.Filter = "Todas as Imagens| *.bmp;*.jpg;*.gif;*.wmf;*.emf" 'Filtra os arquivos
. ShowOpen 'Abre a caixa de dilogo comum (CommonDialog)
Image1.Picture = LoadPicture (.FileName) 'Exibe a imagem selecionada na Caixa de
Dilogno controle Image1.
End With 'Finaliza a instruo With
End Sub
125