Você está na página 1de 125

Grupo iPED - Curso de Visual Basic 6

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6

iPED Instituto Politcnico de Ensino Distncia.


Todos os Direitos Reservados.
iPED marca registrada pela Empresa Brasileira de Comunicao LTDA.

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6


Institucional
O iPED, Instituto Politcnico de Ensino a Distncia, um centro de educao online que oferece informao, conhecimento e treinamento para profissionais,
educadores e qualquer um que queira evoluir profissionalmente e culturalmente.
Nosso objetivo torn-lo uma base forte de conhecimento e expandir cada vez
mais o seu nvel intelectual e cultural.
Oferecemos uma quantidade enorme de informao, alm de diversos cursos online, onde voc se mantm atualizado em qualquer lugar e a qualquer hora.

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

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6

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.

Nosso sistema garante 100% de segurana.


Empresas podero confirmar a autenticidade do certificado, pois temos o
que existe de melhor em tecnologia disponvel no mercado.
Confira o grande diferencial de nosso certificado:

Certificado Especial
- Tramas em linhas personalizadas
- Tarja de Segurana
- Tinta Luminescente
- Selo de Segurana
- Numerao Intransfervel

Detalhes sobre o selo

Ao trmino do curso solicite o seu!


4

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6

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

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6

INTRODUO

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6

O Visual Basic uma linguagem de programao produzida pela empresa Microsoft, e


parte integrante do pacote Microsoft Visual Studio. Um aperfeioamento do BASIC, a
linguagem dirigida por eventos (event driven), e possui tambm um ambiente de
desenvolvimento integrado (IDE - Integrated Development Environment) totalmente
grfico, facilitando enormemente a construo da interface das aplicaes (GUI Graphical User Interface), da o nome Visual. Em suas primeiras verses, o Visual Basic
no permitia acesso a bancos de dados, sendo portanto voltado apenas para iniciantes,
mas devido ao sucesso entre as empresas que faziam uso de componentes adicionais
fabricados por terceiros para acesso a dados a linguagem logo adotou tecnologias como
DAO, RDO, e ADO, tambm da Microsoft, permitindo fcil acesso a bases de dados. Mais
tarde foi adicionada tambm a possibilidade de criao de controles ActiveX, e, com a
chegada do Visual Studio .NET, o Visual Basic que era pseudo-orientada-a-objetos
tornou-se uma linguagem totalmente orientada a objetos (OO).
ATALHO DO VISUAL BASIC 6.0

Podemos criar atalhos na rea de trabalho para acessar nossos trabalhos com agilidade.

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6

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.

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6

Microsoft visual basic 6.0

Existem vrias linguagens derivadas do visual basic, entre as quais:


- VBScript a linguagem default (por definio) para Active Server Pages e pode ser
usada no scripting (programao) de Windows e de pginas da Internet.
- Visual Basic .NET a nova verso do Visual Basic, que parte integrante da
plataforma Microsoft .NET. Essa verso nao totalmente compatvel com as verses
anteriores, mas existe a possibilidade de converter cdigos antigos, que aps uma reviso
podem ser usados no Visual Basic .NET. Para fins de comparao, essa linguagem usa o
paradigma de Orientao a Objeto e voc encontrar muita semelhana com o Java.
- Visual Basic for Applications (VBA) permite a criao de macros, e est integrado em
todos os produtos da famlia de produtos Microsoft Office, e tambm em outros produtos
de terceiros tais como Visio (agora pertencente Microsoft) e WordPerfect Office 2002.

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6

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.

BARRA FERRAMENTAS PADRO

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

Na Barra de Ttulo fica o nome do projeto ativo naquele momento.

CAIXA DE FERRAMENTAS

Na caixa de ferramentas, esto dispostos os


diversos componentes (objetos)
que sero utilizados na construo da interface
de aplicao.

10

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

11

Grupo iPED - Curso de Visual Basic 6


Os controles padro so:
Ferramenta de seleo. Usada para dimensionar e mover controle.
PictureBox. Usada para mostrar imagens grficas.
Label. Usada para inserir texto. Que serve como rtulo.
TextBox. Usado para criar caixas de edio, onde usurio insere texto.
Frame. Usado para criar uma moldura que agrupe controles.
CommandButton. Usado para desenha um boto que poder ser acionado
para iniciar um comando.
CheckBox. Usado para criar um boto de checagem.
OptionButton. Usado para criar um boto de opo. Em conjunto com outros
OptionButtons, o usurio pode escolher uma opo dentre vrias.
ComboBox. Usado para desenhar uma lista de itens em uma caixa combo. O
usurio poder interagir com a lista inserida na caixa combo.
Listbox. Usada para mostrar uma lista de itens em uma caixa de lista, para
que o usurio escolha um item.
Hscrollbar. Usada para inserir uma barra de rolagem horizontal.
Vscrollbar. Usada para inserir uma barra de rolagem vertical.
Timer. Temporizador para controlar eventos. Invisvel durante a execuo da
aplicao.
Drivelistbox. Usada para mostrar uma lista de drives.
Dirlistbox. Usada para mostrar uma lista de diretrios.
Filelistbox. Usada para mostrar uma lista de arquivos.
Shape. Usada para desenhar algumas figuras geomtricas.
Line. Desenha linhas.
Image. Usada para mostrar imagens bitmaps, cones ou metafile.
Data. Usada para acessar dados em banco de dados.
OLE. Usada para ligar ou embutir objetos de outras aplicaes.

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

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6

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.

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

13

Grupo iPED - Curso de Visual Basic 6

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

Aborta a execuo de um determinado aplicativo

CTRL + DELETE

A partir do cursor, remove o restante da palavra

CTRL + DOWN
ARROW

Exibe a prxima rotina

CTRL + END

Move o cursor para o final do mdulo

CTRL + F

Abre uma janela de dilogo para a procura de expresses


Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6

CTRL + H

Abre uma janela de dilogo para a procura/substituio de


expresses

CTRL + HOME

Leva o cursor para o inicio do mdulo

CTRL + I

Ativa a guia de rpida informao

CTRL + J

Ativa a lista de mtodos e propriedades

CTRL + LEFT
ARROW

Leva o cursor para a ltima palavra esquerda da linha

CTRL + N

Insere uma linha de cdigo em branco

CTRL + PAGE
DOWN

Rola o cursor o contedo de uma tela para baixo

CTRL + PAGE UP

Rola o cursor o contedo de uma tela para cima

CTRL + RIGHT
ARROW

Move o cursor uma palavra direita

CTRL + SHIFT + F2

Volta para o ponto mais recente onde o cursor esteve


posicionado

CTRL + SHIFT + F9

Remove os breakpoints de execuo

CTRL + SHIFT + I

Ativa a guia de parmetros

CTRL + SHIFT + J

Ativa a lista de constantes

CTRL + SPACEBAR

Remove a palavra esquerda do cursor

CTRL + UP ARROW

Exibe a rotina anterior corrente

CTRL + Y

Remove a linha corrente

CTRL + Z

Move o cursor para o final da linha

END

Move o cursor para o final da linha

F1

Ativa a ajuda on-line para a palavra que estiver selecionada

F2

Abre o object browser

F3

Procura pela prxima ocorrncia de uma determinada


expresso

F7

Abre a janela de cdigo

F8

Roda a aplicao no sentido passo a passo

F9

Define/remove um breakpoint

PAGE UP

Retrocede uma pgina de cdigo

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

15

Grupo iPED - Curso de Visual Basic 6

SHIFT + F8

Roda a aplicao rotina por rotina

TECLAS DE ATALHO PARA USO FORMULRIO

16

CTRL + C

Copia os controles selecionados para a rea de transferncia

CTRL + X

Remove os controles selecionados para a rea de transferncia

CTRL + V

Cola o contedo da rea de transferncia no formulrio

CTRL + Z

Desfaz a ltima operao

TAB

Avana para o prximo controle na ordem definida pela


propriedade TAB Index

F4

Exibe a janela de propriedades

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6

FORMULRIO

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

17

Grupo iPED - Curso de Visual Basic 6

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

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6

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

Responsvel por definir a cor de plano de um formulrio. Ao clicar na seta de


lista suspensa desta propriedade, exibindo as cores disponveis para tal
configurao.
Determina o comportamento de um formulrio. Este poder ter bordas fixas, ou
seja, no podem ser redimensionadas ou bordas dimensionveis. Dentro das
opes disponveis teremos:

BorderStyle

Valor

Descrio

0 - none

Determina que o formulrio no pode ser


redimensionado ou movido.

1 - Fixed
Single

Determina que o formulrio no pode ser redimensionado


atravs do processo de arrastar as
suas bordas, porm os botes de maximize e minimize estaro
habilitados.

2 - Sizable

Configurao padro, possibilitando ao usurio redimensionar


o formulrio arrastando suas bordas ou utilizando os botes
relacionados na barra de ttulos.

3 - Fixed
dialog

Configurao que dever ser selecionada quando o


formulrio for utilizado como caixas de dilogo, sendo que
o usurio no poder redimensionar o mesmo.

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

19

Grupo iPED - Curso de Visual Basic 6

4 - Fixed
TollWindow

5 - Sizable
ToolWindow

Configurao idntica ao do Fixed Dialog, porm o boto close


estar disponvel.

Funciona como o estilo Sizable, porm no inclui o boto


Maximize ou Minimize.

Caption

Nesta propriedade , o ttulo digitado, ser apresentado na barra de ttulo do


formulrio.

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

Esta propriedade utilizada para definir a cor do texto impresso no formulrio,


porm no altera a cor dos objetos colocados sobre o formulrio.

Propriedade que armazena a altura de um formulrio, atravs da unidade


de medida twips, representada por um nmero que ser especificado na
mesma. Normalmente, a altura do formulrio, realizada atravs do
processo de clicar e arrastar a sua borda.
Esta propriedade determina o cone que deve ser exibido na barra de tarefas
quando o formulrio estiver minimizado durante a execuo. Os cones
padres do VB, normalmente so instalados no diretrio
\Graphics\Icons da pasta VB.
Esta propriedade, determina a distncia do formulrio a partir da esquerda
da tela. A unidade de medida desta a mesma da propriedade Height.

MaxButton

Definindo esta como True, o formulrio ir mostrar o boto maximize padro no


lado direito da barra de ttulo. Se for configurada como False, o boto no estar
disponvel para o usurio.

MinButton

Definindo esta propriedade como True, o formulrio ir exibir o boto


Minimize, caso contrrio, este boto no estar disponvel.

Name

O nome especificado nesta propriedade, ir definir o nome ao qual o Visual


Basic ir se referir ao formulrio a nvel de codificao do sistema. Por
exemplo, se tivermos a propriedade Name = Principal, deveremos citar este
formulrio como Principal quando formos escrever alguma linha de cdigo se
referenciando ao mesmo.

ScaleMode

Atravs desta propriedade, poderemos alterar a medida padro de twips


para pixels por exemplo.

20

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6

ShowInTaskbar

Width

Esta propriedade permite ocultar o formulrio da barra de tarefas. Ao escrever


um determinado aplicativo e se tenha a inteno de que ele passe a ocupar a
caixa ao lado da barra de tarefas, basta definir esta propriedade como False.

Define a largura de um formulrio, atravs de um nmero que representado


por twips, salvo o caso de ter sido alterada a propriedade ScaleMode.

Esta configurao define a maneira pela qual o formulrio ser


inicializado. As opes disponveis so:
WindowState

0 - normal
1 - Minimized
2 - Maximized

O formulrio aberto em seu estado normal


O formulrio minimizado ao ser aberto
O formulrio maximizado ao ser aberto

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

21

Grupo iPED - Curso de Visual Basic 6

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

Vejamos um resumo de cada estilo:

0 - None - O formulrio no possui : borda, barra de


ttulo, boto para minimizar, maximizar ou fechar. Por
padro o cone do formulrio no exibido na barra
de tarefas. utilizado para criar telas de apresentao
dentre outros usos.
1-Fixed Single - O formulrio possui borda , barra de
titulo e o boto fechar. No pode ser redimensionado .
Os botes Minimizar e Maximizar podem ser incluidos
atravs das propriedades: MinButton e MaxButton.

2- Sizable - o estilo padro . O formulrio possui


borda, barra de ttulo, e todos os botes: minimizar,
maximizar e fechar. Pode ser redimensionado.

3-Fixed Dialog - Formulrio com borda, barra de ttulo


e boto Fechar. No pode ser redimensionado. Seu
icone no exibido na barra de tarefas.

22

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6


4- Fixed ToolWindow - O Formulrio possui a barra
de titulo e o boto fechar com um X menor. No pode
ser redimensionado.

5- Sizable ToolWindow - O Formulrio possui a barra


de titulo e o boto fechar com um X menor. Pode ser
redimensionado.

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

O formulrio ser sempre ativado, depois de inicializado, ou seja, nesta


condio, este evento ser disparado.

Deactive

Exatamente o contrrio do evento Active, ou seja, quando o


formulrio deixa de estar ativo.

DragDrop

Ocorre quando um controle arrastado solto dentro de um formulrio

Load

Este evento disparado quando o formulrio carregado para a


memria, ou seja, antes de evento Active.

Resize

Este evento disparado quando o usurio altera o tamanho do


formulrio.

Unload

Este evento o contrrio do evento Load. Quando exibida uma


janela se voc tem certeza de que deseja fechar o formulrio, e
responde "sim", este evento disparado.

MTODO DO FORMULRIO
Um mtodo uma subrotina que executada por um objeto ao receber uma
mensagem.

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

23

Grupo iPED - Curso de Visual Basic 6


Mtodo
Hide
Move
Paint

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

Ele carrega o formulrio na memria e o exibe tornando-o visvel.


A sintaxe a seguinte: object.Show style, ownerform

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6

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.

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

25

Grupo iPED - Curso de Visual Basic 6

MDIForm com menu

MDI Child ativado - o seu menu substitui o do MDIForm

UM objeto MDIForm pode conter somente: Menu , PictureBox , Toolbar e controles


que tiverem a propriedade Align.

JANELA FORM LAYOUT


Esta janela permite que voc posicione seu formulrio na tela, durante o
projeto. Quando voc clica sobre o formulrio mostrado na tela, o cursor
muda de formato, e voc pode mov-lo na tela.

26

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6

DESENVOLVER SEU PRIMEIRO APLICATIVO


Com o formulrio que esta aberto, vamos gerar o nosso primeiro aplicativo. O objetivo
deste aplicativo ser: "encerrar a aplicao do sistema, quando clicarmos sobre o
boto denominado FINALIZA". Primeiramente, vamos alterar algumas propriedades
do formulrio:
1. Altere a propriedade CAPTION para PRIMEIRO EXEMPLO, neste ponto, sua rea
de trabalho ter o seguinte aspecto:

2. Inclua um componente COMMANDBUTTON, em destaque na figura abaixo:

3. Para incluir o componente no formulrio, basta dar um clique duplo


sobre o mesmo, e automaticamente este ser incluso no seu formulrio,
conforme podemos observar na figura abaixo:

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

27

Grupo iPED - Curso de Visual Basic 6

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

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6

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:

7. Observe que a janela de cdigo j esta aberta para o componente Command1, e


no evento Click, ou seja, o evento que ser disparado quando o componente
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br

29

Grupo iPED - Curso de Visual Basic 6


Commandbutton receber o click do mouse. Caso no fosse este o evento a ser
programado, bastaria voc selecionar o novo evento na caixa de seleo sua
direita. Observe que a mesma est apontando para o evento Click;

30

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

8. Nosso objetivo que o sistema seja encerrado quando clicarmos sobre o


CommandButton inserido em nosso formulrio, para isso, temos o comando END, que
dever ser colocado entre o PRIVATE .... e o END SUB, pois eles marcam o inicio e o
final da programao de um determinado evento. Logo, sua rea de trabalho dever
ter o seguinte aspecto:

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:

Grupo iPED - Curso de Visual Basic 6

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

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6

LGICA DE
PROGRAMAO

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

33

Grupo iPED - Curso de Visual Basic 6

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

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6

SUFIXOS DE TIPO DE DADOS


Integer
Long
Simple
Double
String
Currency
Variant

%
&
!
#
$
@
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

Grupo iPED - Curso de Visual Basic 6


O formato da atribuio de valores :
resultado = expresso
Exemplo:
Total = txt1 * txt2
Exemplo prtico usando 3 variveis passo-a-passo
1 - Declarao de variveis
2 - a: inteiro
3 - b: inteiro
4 - c: real
5 - Incio do programa
6 - a <- 13
7 - b <- 2
8 - c <- a / b
9 - mostra ( c )
10 - Fim do programa

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

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6

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.

VARIAES DA ESTRUTURA DE CONDIO IF

Variao 1
IF ELSE

if (condio)
{
lista de instrues
}
else
{
lista de instrues
}
......

Neste caso, se a condio colocada aps o IF no obtiver resultado verdadeiro,


automaticamente sero feitas as instrues que esto dentro do ELSE, desconsiderando
aquelas que esto abaixo do IF. Caso a condio seja VERDADEIRA, sero feitas as
instrues que esto entre chaves abaixo do IF.
Quando acabar tanto a lista de instrues abaixo do IF quanto a lista de instrues referente
ao ELSE, automaticamente sero desenvolvidas as instrues que esto aps a lista de
instrues do ELSE (....).

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

37

Grupo iPED - Curso de Visual Basic 6

ESTRUTURA CONDICIONAL SIMPLES


O comando s ser executado se a condio for verdadeira. Uma condio uma comparao
que possui dois valores possveis, verdadeiro ou falso.
Sintaxe:
SE condio
ENTO INCIO
comando1
comando2
comando3
FIM

ESTRUTURA CONDICIONAL - COMPOSTA


Sintaxe:
SE condio
ENTO comando1
SENO comando2

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

ESTRUTURA CONDICIONAL ANINHADA


O if aninhado simplesmente um if dentro da declarao de um outro if externo. necessrio
saber exatamente a qual if um determinado else est ligado, para no ocasionar erro na lgica do
programa.
Exemplos de IF's aninhados:
Uses Crt;

Var X, Y, A, B : Integer;

38

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6


INICIO
Readln (X,Y,A,B);
If (X > Y) Then { Entrar no Prximo If apenas se a varivel X for maior que a variavel Y }
| If (A > B)
| | Then Writeln ('X maior que Y e A maior que B') {Sem ";"}
| Else Writeln ('A no Maior que B') {Sem ";"}
Else Writeln ('X no maior que Y');
End.
{ O caracter "|" serve para indicar qual IF pertence a qual ESLSE}
{ Repare que antes do ELSE nao tem ";"}

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.

O compilador adota que o Else sempre ser do If mais interno.


Exemplo de como resolver o problema do Else pendente:
Uses Crt;
Var X, Y, A, B: Integer;
INICIO
Readln (X,Y,A,B);
If (X > Y) Then
Begin
If (A > B) Then
Writeln ('A maior que B')
Else Writeln ('A no Maior que B');
End;
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

Grupo iPED - Curso de Visual Basic 6

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

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6


Y := 3;
Writeln ('Entrou no Segundo alvo');
Fim;
3 : Writeln ('Entrou no Terceiro alvo');
Else Writeln ('Entrou no Else');
End;
End.

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

Grupo iPED - Curso de Visual Basic 6

A seguir encontram-se descritas as sintaxes das principais instrues do Visual Basic.


For ... next
For contador = incio To fim[Step incremento]
[instrues]
[Exit For]
[instrues]
Next [contador]
While ... wend
While condio
[indtrues]
Wend
Do ... loop
Do [{While | Until} condio]
[instrues]
[Exit Do]
[instrues]
Loop
Select ... case
Select Case expresso_teste
[Case lista-n
[instrues]] . . .
[Case Else
[instrues]]
End Select

42

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6

With
With objeto
[instrues]
End With

EXPRESSES E OPERADORES MATEMTICOS


Para poder calcular e atribuir resultados de uma expresso a variveis e quando codificar
declaraes que contm expresses voc deve aprender operadores matemticos do Visual Basic.
Os principais operadores matemticos so:
Operador
+
*
/
^
& (ou +)

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.

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

43

Grupo iPED - Curso de Visual Basic 6

TRABALHANDO
COM SQL

44

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6

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;

Primeiro ir ganhar tempo pois a quantidade de linhas de cdigo necessrias


para realizar uma tarefa via SQL menor que o mtodo procedural via DAO.

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:

Criao de Bases de Dados (Ver Banco de Dados).

Segurana de acesso aos Dados.

Recuperar informaes e Integridade de transaes.

Manipulao e controle de bases de dados.

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

Grupo iPED - Curso de Visual Basic 6

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

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6

CRIANDO TABELAS VIA SQL.


Vamos criar via SQL as tabelas utilizadas no primeira seo de Desvendando o Crystal Reports.
S para lembrar a estrutura das tabelas dada a seguir:
TblAlunos
codaluno
nome
endereco
telefone
nascimento
nomepai
nomemae
observacao
Periodo
serie
numero

TblCursos

TblNotas

TblProfessor

codcurso
nomecurso
codprofessor

codaluno
codcurso
nota
ano
bimestre
Observacao

codprofessor
nome
endereco
telefone

Obs : Codaluno , Codcurso, CodProfessor so chaves primrias de suas respectivas tabelas.


Para exercitar iremos definir os relacionamentos entre as tabelas da seguinte forma:

A tabela tblprofessor pode ser definida como a seguir (Access SQL) :

CREATE TABLE tblprofessor


(codprofessor INTEGER CONSTRAINT primarykey PRIMARY KEY,
nome TEXT (50),
endereco TEXT (50),
telefone TEXT (15) );

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.

A clusula CONSTRAINT utilizada para definir a chave primria codprofessor.


Para criar a tabela no VB execute a instruo CREATE TABLE passando-a como parmetro do
mtodo Execute do objeto Database. Ex: db.Execute ("CREATE TABLE...")
Os nomes dos tipos de dados utilizados pelo JET no igual aos nomes exigidos pelas instrues
SQL. Veja na tabela a abaixo a correspondncia entre ambos:
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br

47

Grupo iPED - Curso de Visual Basic 6

Tipos de Dados
SQL
BIT
BYTE
COUNTER
CURRENCY
DATETIME
SINGLE
DOUBLE
SHORT
LONG
LONGTEXT
LONGBINARY
TEXT

Tipos de dados do JET


YES/NO
NUMERIC - BYTE
COUNTER - Contador
CURRENCY - Moeda
DATE/TIME
NUMERIC - SINGLE
NUMERIC - DOUBLE
NUMERIC - INTEGER
NUMERIC - LONG
MEMO
OLE OBJECTS
TEXT

A tabela TblCursos ser criada pela instruo:

CREATE TABLE tblcursos


(codcurso INTEGER CONSTRAINT primarykey PRIMARY KEY,
nomecurso TEXT (15),
codprofessor INTEGER CONSTRAINT tblprofessorFK REFERENCES tblprofessor);

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
)

NDICES E TABELAS - CRIAR, ALTERAR E EXCLUIR.


EXCLUINDO TABELAS
Para excluir uma tabela via SQL usamos a instruo DROP TABLE nome da tabela
Assim para excluir a tabela tblalunos criada anteriormente fazemos:
DROP TABLE tblalunos

A tabela e todo o seu contedo excluida.

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

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6

Assim para incluir o campo CIDADE com 50 caracteres na tabela tblalunos fazemos:

ALTER TABLE tblalunos ADD COLUMN cidade TEXT (50)

2- Na excluso de um campo basta especificar o nome do campo e usar a clusula DROP


COLUMN.
O cdigo abaixo exclui o campo NOME da tabela tblalunos
ALTER TABLE tblalunos DROP COLUMN nome
Note que no ser possvel excluir um campo empregado em um ndice ou em uma relao.

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

TESTANDO AS INSTRUES SQL


Para criar e testar todas essas instrues SQL voc pode codific-las direto no Visual Basic e
executar o cdigo para ver o resultado, para isto voce dever usar o mtodo Execute (ver a seguir)
do objeto DataBase(Veja artigo), mas voc pode usar os seguintes meios:
1-) O aplicativo VISDATA que acompanha o Visual Basic
2-) O Microsoft Access
3-) O Microsoft Query (para usurios do Excel ou Office)
Eu o aconselho a evitar a codificao quando estiver testando as instrues, pois tanto o VISDATA
como o Access so mais fcies de usar e lhe do o resultado de imediato.
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br

49

Grupo iPED - Curso de Visual Basic 6

SQL - Criando Consultas Parametrizadas


O microsoft Access nos d a possibilidade de criar e armazenar consultas dentro do arquivo de
banco de dados. A vantagem em armazenar as consultas no banco de dados que para executar
uma instruo SQL o JET verifica erros de sintaxe, depois ele tenta otimizar a instruo e a seguir
executa a instruo, tudo isto leva tempo e a coisa piora se voc estiver executando as mesmas
instrues SQl diversas vezes, pois o JET ter que refazer tudo novamente.
Ao criar e armazenar definies de consultas atravs de instrues SQL o Access analisa a
instruo e a otimiza s ento ele armazena a instruo original e a otimizada, quando for executar
a instruo o trabalho estar feito e o tempo de execuo ser diminuido.
Cada consulta armazada em um banco de dados Access um objeto QueryDef, o conjunto de
objetos QueryDef compem a coleo QueryDefs do objeto Database . Ento uma QueryDef
uma consulta SQL pr-compilada e pr-otimizada.
Para criar uma QueryDef usamos o mtodo CreateQuery do objeto DataBase ou a criamos
diretamente usando o prprio Microsoft Access.
O CreateQuery necessita de dois parmetros: o nome da QueryDef e a instruo SQL que o cria.
Vejamos com o criar uma consulta SQL e armazen-la no banco de dados:
Para criar uma consulta chamada Lista_Alunos , que lista todos os alunos por ordem alfabtica da
tabela tblalunos e armazen-la no banco de dados Escola.mdb, fazemos o seguinte:
Dim db as Database
Dim qd as QueryDef
set db=DbEngineworkspaces(0).Opendatabase(app.path & "\escola.mdb")
set qd=db.CreateQueryDef("Lista_alunos", "SELECT * FROM tblalunos ORDER BY
nome"

50

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6

Uma vez criada a QueryDef podemos execut-la e manipul-la como um recordset:


Dim db as Database
Dim dyn as Recordset
set db=DbEngine.Workspaces(0).OpenDatabase(app.path & "\escola.mdb")
set dyn=db.QueryDefs("lista_alunos").OpenRecordset(dbOpendynaset)
Ou elimin-la :
db.Querydefs.Delete "Lista_alunos"
Para tirar maior proveito das QueryDefs costuma-se cri-las de forma que aceitem parmetros,
para isto usamos a palavra-chave PARAMETERS para passar um ou mais parmetros para as
consultas SQL.
Suponha que no caso do exemplo anterior gostariamos de listar todos os alunos de uma
determinada srie, para isso criamos a consulta e passamos o parmetro da srie desejada :
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= "PARAMETERS pSerie String SELECT * FROM tblalunos WHERE serie = pSerie "
sql=sql & " ORDER BY nome "
set qd=db.CreateQueryDef("Lista_alunos", Sql )
qd.Parameters("pSerie")= "1"
set dyn= qd.OpenRecordset()

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

As QueryDef possuem as seguintes propriedades:

MaxRecords - fixa um limite que um QueryDef pode retornar


Name - Armazena e define o nome de um consulta
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br

51

Grupo iPED - Curso de Visual Basic 6

RecordsAffected - armazena o nmero de registros afetados por um comando Execute.


SQL - Retorna o comando SQL que originou a consulta.

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.

O cdigo poderia ter o seguinte aspecto:


Dim db as database
Dim tabela as recordset
set db=workspaces(0).Opendatabase("c:\banco.mdb")
set tabela=db.Openrecordset("tabela")
Whilel not tabela.eof
tabela.edit
tabela.valor=tabela.valor*1.10
tabela .update
tabela.movenext
Wend
tabela.close
Agora utilizando uma instruo SQL teriamos o seguinte trecho de cdigo:
Dim db as Database
Set db=Workspaces(0).Opendatabase("c:\banco.mdb")
db.execute "UPDATE tabela SET valor=valor*1.10"
db.close

Observe a utilizao da instruo SQL UPDATE, bem mais simples , no ?


Ento se voc no est utilizando a SQL , estar trabalhando muito e seu cdigo sofrendo as
consequncias.
Vejamos na tabela abaixo um resumo das clusulas manipulativas e suas finalidades:
Instruo

Funo

SELECT

Obtm um grupo de registros e insere os registros em um dynaset ou em uma


tabela

UPDATE

Define os valores dos campos de uma tabela em uma atualizao

52

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6

TRANSFORM

Cria uma tabela de resumo, utilizando o contedo de um campo como cabealho


de cada coluna

DELETE
FROM

Remove registros de uma tabela

INSERT INTO

Acrescenta um grupo de registros a uma tabela.

Vejamos alguns exemplos da instruo SELECT:


1-) Seleciona os campos "Primeiro nome" e "Sobrenome" de todos os registros da tabela
Empregados.
SELECT [Primeiro nome], [Sobrenome] FROM Empregados
2-) Seleciona todos os campos da tabela Empregados.Note o uso parmetro (*) indicando todos os
campos da tabela indicada.
SELECT Empregados.* FROM Empregados
3-) Conta o nmero de registros que tm uma entrada no campo "Cdigo postal"e coloca o ttulo
Contagem no topo da coluna.
SELECT Count([Cdigo postal]) AS Contagem FROM Clientes
4-) Seleciona os campos "Primeiro nome" e "Sobrenome" de cada registro cujo sobrenome seja
Pereira.
SELECT [Primeiro nome], [Sobrenome] FROM Empregados WHERE [Sobrenome] = 'Pereira'

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

53

Grupo iPED - Curso de Visual Basic 6

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

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6

MENU EDITOR

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

55

Grupo iPED - Curso de Visual Basic 6

MENU DESIGN WINDOW


O Visual Basic disponibiliza uma excelente ferramenta para projeto de menus: o "Menu Design
Window", ou Janela de Projeto de Menus ( Menu Editor) , que pode ser acessada com Ctrl-E ou
por
meio
do
boto
direito
do
mouse,
ou
atravs
do
menu
Tools.

56

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6

PROPRIEDADES DO MENU EDITOR


As propriedades de itens de menus so as seguintes:

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.

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

57

Grupo iPED - Curso de Visual Basic 6

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

Os menus so essenciais em um sistema.

58

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6

Aps terminar o menu, mude a legenda do formulrio para "Editor". O resultado final deve ser
semelhante a imagem abaixo:

Um editor de textos baseado em menus.


O menu Editar contm basicamente o mesmo cdigo que, antes, estava nos botes do bloco de
notas. Quando um menu construdo a partir de arrays, a maneira mais fcil de escrever o cdigo
usando o comando "Select ...Case". Para iniciar a programao, insira uma caixa de texto do
formulrio, renomeando-a para txtEditor e abra a janela de cdigo do menu mnuEditarItem,
escrevendo as seguintes linhas:
Private Sub mnuEditarItem_Click(index As Integer)
Select Case index
Case 0 'Cortar
CortaTexto = txtEditor.SelText
txtEditor.SelText = ""
txtEditor.SetFocus
Case 1 'Colar
txtEditor.SelText = CortaTexto
Case 2 'Apagar
txtEditor.Text = ""
txtEditor.SetFocus
End Select
End Sub
Note que o ncleo do cdigo idntico ao utilizado no Bloco de Notas. A utilizao do comando
Select ... Case certamente facilita as coisas e funciona da seguinte maneira: quando um item do
menu mnuEditar selecionado, o evento clique passa o parmetro Index, que corresponde ao item
selecionado.
A estrutura de deciso Select ... Case verifica o valor de Index e executa imediatamente o bloco de
comandos associado, pulando a seguir para a linha End Select. O comando Select ... Case no
verifica todos os possveis valores de Index,

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

Grupo iPED - Curso de Visual Basic 6

Private Sub mnuFontesItem_Click(index As Integer)


Select Case index
Case 0
txtEditor.FontName = "Courier"
Case 1
txtEditor.FontName = "Helv"
Case 2
txtEditor.FontName = "Roman"
Case 3
txtEditor.FontName = "Modern"
Case 4
txtEditor.FontName = "Script"
Case 5
txtEditor.FontName = "Symbol"
Case 6
txtEditor.FontName = "System"
Case 7
txtEditor.FontName = "Terminal"
End Select
For Contador = 0 To 7
mnuFontesItem(Contador).Checked = False
Next loop_index
mnuFontesItem(Contador).Checked = True
End Sub
Inicialmente, o comando Select ... Case usado para atribuir propriedade "FontName" da caixa
de textos a fonte escolhida pelo usurio. Depois, um pequeno lao For ... Next remove as marcas
de verificao de todos os sete itens de menu (porque no sabemos qual delas est ativa).
Finalmente, colocamos uma marca de verificao no item de menu escolhido atualmente.
Est no a nica maneira de trabalhar com marcas de verificao e algum poderia argumentar
que no a mais rpida (por causa do lao For .. Next).
Na verdade poderamos memorizar o item escolhido anteriormente, fazendo uso de uma varivel do
tipo Integer, e ento remover a barra de verificao somente deste item. Esta pequena modificao
fica como lio de casa.
Os comandos para o menu mnuArquivoItem so mais complicados e exigem que trabalhemos com
arquivos e janelas de dilogo.

60

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6

CAIXA DE
FERRAMENTAS
E CONTROLE

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

61

Grupo iPED - Curso de Visual Basic 6

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.

O principal uso deste componente exibir informaes ao usurio. As propriedades mais


importante de um LABEL so:
Name

Define o nome do componente a ser utilizado dentro da


fonte do sistema.

Caption

Esta propriedade armazena o texto que ser exibido sobre


a forma de etiqueta.

Autosize

Quando configurada para true, faz com que o "tamanho" do


componente seja automaticamente configurado de acordo
com o tamanho do texto a ser exibido.

WordWrap

Faz com que exista uma quebra automtica de linha,


expandido o tamanho da legenda em uma linha, caso o texto
definido em Caption, ultrapasse o limite horizontal de tamanho
do Label.

62

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6

EXEMPLO:

Depois de montado sua


interface d um duplo
clique no formulrio

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

63

Grupo iPED - Curso de Visual Basic 6

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.

Na tabela abaixo, iremos citar as propriedades mais importantes do CommandButton:


Name

Esta propriedade determina o nome pelo qual o controle


ser referenciado na fonte do projeto.

Caption

Armazena o texto que ser exibido dentro do CommandButton.

Style

Nesta poderemos definir se o boto ir aceitar apenas texto


dentro de seu interior ou se o mesmo poder aceitar grficos. No
caso de inserir uma figura, dever definir a mesma na
propriedade Picture.

Enabled

Esta propriedade caso esteja setada como False, desativa o


boto em um determinado formulrio.

Ex:

64

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6

CONTROLE TEXTBOX
Utilizadas para proporcionar a entrada de dados, atravs do teclado, por parte do usurio.

Na tabela baixo, temos as principais propriedades do controle em questo:

Name

Armazena o nome do controle, que dever ser utilizado na fonte


do sistema

Text

Armazena o contedo digitado na caixa de texto. Neste caso,


esta propriedade substitui a Caption

MaxLenght

Limita o nmero de caracteres que poder ser digitado pelo


usurio em tempo de execuo.

Passwordchar

Utilizado para mostrar o caracter * enquanto existe a digitao do


contedo. til para utilizao em campos do tipo senha.

Multiline

Permite ao no ao usurio digitar mais de uma linha na caixa


de texto

Locked

Caso configurada como true, far a caixa de texto exibir dados,


sem permitir a sua edio. Este tipo de caixa bastante
utilizado nas caixas de texto que contm o texto de
licenciamento de um determinado software, sendo que neste
caso, o contedo da caixa dever ser previamente digitado na
propriedade Text.

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

65

Grupo iPED - Curso de Visual Basic 6

EXEMPLO:

1 Monte a tela como na imagem acima.

2 Depois adicione os cdigos em cada boto.

66

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6

3 Clique no boto Exibir.

4 basta digitar seu nome no campo e clique em OK.

5 Seu nome ser adicionado em textbox, o boto limpar tudo, apaga o contedo do campo.

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

67

Grupo iPED - Curso de Visual Basic 6

CONTROLE OPTION BUTTON


Botes de opo, utilizados como o nome mesmo diz, para escolher entre uma opo ou outra.

Dentre as principais propriedades de um boto de opo temos:


Propriedade

Funo

Name

Nome dado ao componente, que ser utilizado dentro do


cdigo fonte da aplicao.

Caption

Utilizada para permitir ao usurio determinar a finalidade de


cada um dos botes de opo.

Value

Propriedade geralmente utilizada durante o sistema em tempo


de execuo, pois atravs desta, o sistema saber de uma
opo est ou no marcada, atravs do resultado True ou
False.

Style

Se estiver setada para "0 - STANDARD" ser desenhado um


boto de opo padro, caso contrrio, estando setado para
"1 - Graphical", o boto de opo ter a aparncia de um
boto de comando, permitindo apenas uma seleo dentro de
um grupo.

Ex:
Private Sub Command1_Click()
If Option1.Value = True Then
Print "Primeiro"
ElseIf Option2.Value = True Then
Print "Segundo"
End If
End Sub

68

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6

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

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

69

Grupo iPED - Curso de Visual Basic 6

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.

Veja abaixo as principais propriedades das caixas de lista:


Propriedade

Objetivo

List

Retorna o valor selecionado de uma lista

ListCount

Fornece o nmero de itens de uma caixa de lista

MultiSelect

Determina se o usurio pode ou no selecionar mais de um item da


lista
Propriedade boleana que pode assumir um valor para que em
tempo de execuo um valor da lista esteja previamente
selecionado.

Selected

Sorted

Classifica ou no os itens de uma lista

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

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6

No comando acima, estamos pr-selecionado (via cdigo) o quarto item da lista.


O evento mais utilizado nas caixas de lista o DblClick(), ou seja, verificando o item selecionado.
J o mtodo AddItem utilizado para preencher os itens de uma lista. O mtodo RemoveItem
utilizado para excluir um item de uma lista e o mtodo Clear utilizado para remover todos os itens
de uma lista. Observe os exemplos a seguir:
List1.additem "Paulo"
No exemplo acima, na caixa de lista denominada "List1" foi incluso o valor
"Paulo".
EXEMPLO:

- Monte uma tela neste


formato, um campo Label,
um campo Textbox, um
campo Listbox e um Boto.
- Em seguida d um duplo
clique no boto.

1
2

Digite o seguinte cdigo.

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

71

Grupo iPED - Curso de Visual Basic 6

Pronto faa um teste em seu


programa, note depois de digitado o
nome do produto no campo, quando
pressionado o boto o mesmo
adicionado na lista.

Caso o campo nome do produto


esteja em branco informado
mensagem de erro.

72

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6

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

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

73

Grupo iPED - Curso de Visual Basic 6

PERSONALIZAR FERRAMENTAS DE CONTROLE


O Visual basic permite que voc configure sua caixa de ferramentas afim de facilitar a sua utilizao
para o desenvolvimento.
Vejamos abaixo as etapas necessrias:

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

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6

3 - Veja que a guia


adicionada na caixa de
controle.

4 Agora basta
adicionar os novos
componentes.

5 Clique no(s)
componente
desejado e depois
em OK.

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

75

Grupo iPED - Curso de Visual Basic 6

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

Grupo iPED - Curso de Visual Basic 6


como recuo da opo Auto Indent.
O frame Windows Settings possui as seguintes opes:

Drag-and-Drop Text Editing - Utilizada para proporcionar a possibilidade de arrastar e


soltar um trecho de cdigo dentro do editor de cdigos;
Default to full module view - Caso ativado, todos os procedimentos podero ser
visualizados dentro de uma nica janela de cdigo;
Procedure Separator - quando selecionada, exibe um separador visual entre os
procedimentos que esto sendo listados na janela do cdigo. Apenas til caso a opo
acima estiver ticada.

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

77

Grupo iPED - Curso de Visual Basic 6

GUIA EDITOR FORMAT


Atravs desta guia, poderemos definir as cores e fontes que sero empregadas pelo editor no
texto normal ( tudo aquilo que no for comando ou funo da linguagem ), etc... Basta selecionar
cada um dos itens que esto na caixa Code Colors e em seguida, formatar a fonte a ser utilizada.

78

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6

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.

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

79

Grupo iPED - Curso de Visual Basic 6

GUIA DOCKING
Esta guia possui as opes para determinar quais janelas do IDE estaro ancoradas.

80

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6

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.

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

81

Grupo iPED - Curso de Visual Basic 6

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

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6

DATA CONTROL

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

83

Grupo iPED - Curso de Visual Basic 6

CONTROLE DE DADOS

Controle que serve para configurar conexes em banco de dados.

ACESSO A BD - DATA CONTROL


Voc quer implantar um cadastro de Clientes em sua empresa, e, deseja armazenar as seguintes
informaes: Codigo, Nome, Endereo, Cidade, Cep, UF e Telefone para cada cliente.
Feita a anlise a equipe chegou as seguintes concluses:

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

Podemos agora dividir o projeto em trs fases distintas:


Definio do banco de dados e tabelas.
Definindo banco de dados, tabelas, campos e registros.
S para lembrar, voc quer implantar um cadastro de Clientes em sua empresa e deseja armazenar
as informaes: Codigo, Nome, Endereo, cidade, cep, UF e Telefone para cada cliente. Ento...
Podemos dizer que cada uma dessas informaes sero os campos de seu arquivo de dados e,
juntos, para cada cliente, iro compor o que chamamos de um registro de seu arquivo.
Logo voc ter um arquivo com 7 campos e tantos registros quantos forem os clientes que voce
cadastrar.
Voc deve armazenar o seu arquivo em um banco de dados, e dar um nome para ambos: para o
arquivo e para o banco de dados.
Bem, vamos chamar o seu arquivo de tabela e dar a ela o nome de Clientes, e ao seu banco de
dados dar o nome de Controle. Teremos ento um banco de dados chamado Controle que contm
uma tabela chamada Clientes que conter as informaes de todos os clientes cadastrados.
Obs: Os usurios do Clipper/Dbase, utilizam arquivos padro dbf, e podem ficar confusos com esse
conceito de banco de dados, pois o que acabamos de chamar de tabelas o Clipper/Dbase chama
de banco de dados.
Nativamente o Visual Basic usa o mesmo tipo de banco de dados que o Microsoft

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

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6


Nome do Campo
CODIGO
NOME
ENDERECO
CIDADE
CEP
UF
TELEFONE

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:

Podemos observar que no formulrio Clientes temos:


1) Sete etiquetas (labels) e sete caixas de texto (Textbox)
2) Um objeto controle de dados (Data Control)
3) Cinco botes de comandos (CommandButton)

Vamos montar o formulrio Clientes conforme descrito abaixo:


1) Inicie um novo projeto no Visual Basic.Grave o formulrio Form1 como Clientes.
2) Adicione ao Form1 os objetos e configure as propriedades conforme a tabela 1.0 abaixo:
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br

85

Grupo iPED - Curso de Visual Basic 6

- Objetos e propriedades do formulrio Clientes


Objeto
Propriedade
Configurao
---------------------------------------------------------------------------------------------------------------Form
Name
Clientes
Caption
"Cadastro de Clientes"
---------------------------------------------------------------------------------------------------------------Data
Name
dtaCli
Caption
"Total de clientes:"
Connect
Access
Databasename
"C:\CONTROLE\CONTROLE.MDB"(*)
RecordSetType
0-Table
RecordSource
"Clientes"
---------------------------------------------------------------------------------------------------------------label
Name
label1
Caption
"Cdigo"
Autosize
True
---------------------------------------------------------------------------------------------------------------label
Name
label2
Caption
"Nome"
Autosize
True
---------------------------------------------------------------------------------------------------------------label
Name
label3
Caption
"Endereo"
Autosize
True
---------------------------------------------------------------------------------------------------------------label
Name
label4
Caption
"Cidade"
Autosize
True
---------------------------------------------------------------------------------------------------------------label
Name
label5
Caption
"UF"
Autosize
True
---------------------------------------------------------------------------------------------------------------label

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

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6


---------------------------------------------------------------------------------------------------------------TextBox
Name
uf
DataField
"UF"
DataSource
dtaCli
---------------------------------------------------------------------------------------------------------------TextBox
Name
cep
DataField
"Cep"
DataSource
dtaCli
---------------------------------------------------------------------------------------------------------------TextBox
Name
telefone
DataField
"Telefone"
DataSource
dtaCli
---------------------------------------------------------------------------------------------------------------CommandButton
Name
incluir
Caption
"&Incluir"
---------------------------------------------------------------------------------------------------------------CommandButton
Name
excluir
Caption
"&Excluir"
---------------------------------------------------------------------------------------------------------------CommandButton
Name
localizar
Caption
"&Localizar"
---------------------------------------------------------------------------------------------------------------CommandButton
Name
gravar
Caption
"&Gravar"
---------------------------------------------------------------------------------------------------------------CommandButton
Name
sair
Caption
"&Sair"
---------------------------------------------------------------------------------------------------------------(*) O arquivo Controle.mdb deve estar no diretrio CONTROLE.
Implementar o cdigo da aplicao
Cdigo Da Aplicao
Objeto Controle de Dados(Data Control)
Lembre-se que voc esta usando um banco de dados do Microsoft Access, ento:
Para o objeto Data voce deve configurar as propriedades como abaixo:
1- A propriedade Connect deve estar como: Access.
2- A propriedade Name do controle deve ser: DtaCli.
3- O DatabaseName o nome do seu arquivo de banco de dados, no caso: Controle.mdb
4- O RecordSource poder ser uma tabela ou uma instruo SQL, no seu caso, a tabela Clientes
do banco de dados Controle.mdb.
5- A propriedade RecordSetType deve ser definida como 0-Table.
Por isso criamos o ndice com o campo cdigo, para utilizar com o mtodo Seek do Recordset
Tabela. Se recordSetType fosse definido como 1-Dynaset> ou 2-Snapshot no poderiamos usar o
mtodo Seek e sim o FindFirst, FindNext, FindLast, etc.
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br

87

Grupo iPED - Curso de Visual Basic 6


Obs. Voc poderia ter incluido o cdigo no evento Load do seu formulrio configurando as
propriedades discutidas acima da seguinte forma:
Sub Form_load
dtacli.Databasename="C:\Controle\Controle.mdb"
dtacli.Recordsource="Clientes"
dtacli.RecordSetType= 0
End Sub
Caixas de Texto (TextBox)
Agora para cada Textbox voce deve configurar as propriedades como segue:
1- A propriedade DataSource deve receber o nome do objeto Data: DtaCli
2- A propriedade DataField de cada TextBox deve ser vinculada ao respectivo campo da tabela
Clientes. (Selecione na lista de campos).
Feito isto o Controle de dados, DtaCli fornecer o vinculo entre o seu formulrio e o Banco de dados
atravs da propriedade DataField das Caixas de Texto(TextBox) e tambm as ferramentas para a
navegao atravs do banco de dados.
Para movimentar-se pelos registros da tabela Clientes basta clicar nos botes do objeto DtaCli.
Cdigo associado a cada boto de commando
Dica: - A palavra Recordset pode representar um objeto e uma propriedade.
Desta forma voc pode atribuir um Recordset a uma varivel objeto, da seguinte forma:
Set meusdados = Data1.Recordset
A seguir voc pode se referir ao seu Recordset usando a varivel objeto.(No esquea de defin-la
previamente.)
No exemplo a seguir no usaremos esta notao.
Para inserir as linhas de cdigo basta clicar duas vezes no boto correspondente do seu formulrio.

CDIGO PARA BOTO INCLUIR


Private Sub Incluir_Click()
dtacli.Recordset.AddNew

'insere informaes no buffer de cpia


preparando para incluir um novo registro no recordset
excluir.Enabled = False 'desabilita o boto excluir
incluir.Enabled = False 'desabilita o boto incluir
localizar.Enabled = False 'desabilita o boto localizar
sair.Caption = "&Cancelar" 'Muda o nome do boto Sair para Cancelar
gravar.Enabled = True
'Habilita o boto gravar
nome.SetFocus
'pe o foco na caixa de texto nome
End Sub

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.

CDIGO DO BOTO GRAVAR


88

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6

Private Sub gravar_Click()


If nome.Text = Empty Then
MsgBox "Informe o nome do Cliente.", vbExclamation, "Gravar Clientes"
nome.SetFocus
Exit Sub
End If
If endereco.Text = Empty Then
MsgBox "Informe o endereco do cliente.", vbExclamation,"Gravar Clientes"
endereco.SetFocus
Exit Sub
End If
If cidade.Text = Empty Then
MsgBox "Informe a cidade do cliente.", vbExclamation,"Gravar Clientes"
cidade.SetFocus
Exit Sub
End If
If uf.Text = Empty Then
MsgBox "Informe a UF do cliente.", vbExclamation, "Gravar Clientes"
uf.SetFocus
Exit Sub
End If
If cep.Text = Empty Then
MsgBox "Informe o Cep do cliente.", vbExclamation, "Gravar Clientes"
cep.SetFocus
Exit Sub
End If
dtacli.UpdateRecord
dtacli.Recordset.Bookmark = dtactl.Recordset.LastModified
sair(4).Caption = "&Sair"
localizar.Enabled = True
End Sub
Na rotina de gravao verificamos se os dados que so obrigatrios,no nosso caso s o telefone
no , foram informados; ento nome, endereo, cidade, uf, cep no podem ser vazios(empty).
Se qualquer deles no for informado exibida a mensagem respectiva(msgbox), o foco retorna ao
campo para preenchimento(setfocus) e a rotina de gravao abandonada.(Exit Sub)
Se todos os campos obrigatrios foram informados o sistema acrescenta fisicamente o registro na
tabela, atravs do mtodo UpdateRecord. A utilizao deste mtodo, ao invs do mtodo
Update,tem a vantagem de no disparar os eventos Validate e Reposition do data control
A utilizao da propriedade BookMark do recordset apenas posiciona o ponteiro de registro no
ultimo registro que sofreu modificaes.
A seguir restauramos o nome do boto Sair e habilitamos o boto localizar.

CDIGO DO BOTO CANCELAR


Private Sub Sair_Click()
If sair.Caption = "&Cancelar" Then
dtacli.Recordset.CancelUpdate
dtacli.Recordset.MoveLast
incluir.Enabled = True
excluir.Enabled = True
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br

89

Grupo iPED - Curso de Visual Basic 6


localizar.Enabled = True
sair.Caption = "&Sair"
Else
If MsgBox("Quer sair do sistema ?", vbYesNo,"Sair do Sistema") = vbYes Then
End
Else
Exit Sub
End If
End If
End Sub

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.

CDIGO DO BOTO EXCLUIR


Private Sub excluir_Click()
If MsgBox("Confirma Excluso do cliente -> " & dtactl.Recordset![codigo], vbQuestion +
vbYesNo, "Excluir Clientes") = vbYes Then
dtacli.Recordset.Delete
dtacli.Refresh
End If
End Sub
Na rotina de excluso, Solicitamos a confirmao da excluso,e, em caso afirmativo, usamos o
mtodo delete, que remove o registro do recordset e estabelece um valor nulo para o ponteiro de
registro.
A seguir atualizamos o objeto data control (Refresh).

CDIGO DO BOTO PESQUISAR


Private Sub localizar_Click()
Dim criterio As long
Dim marcador As variant
marcador = dtacli.Recordset.Bookmark
dtacli.Recordset.Index = "codigo" 'recordset do tipo Table !!!
criterio = InputBox$("Codigo do cliente a localizar: ", "Localizar Clientes")
If criterio <> Empty Then
dtacli.Recordset.Seek "=", criterio
If dtacli.Recordset.NoMatch Then
MsgBox "Cliente no localizado ! ", vbExclamation, "Localizar Clientes"
dtacli.Recordset.Bookmark = marcador

90

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6


End If
Else
dtacli.Recordset.Bookmark = marcador
End If
End Sub
Para a rotina de localizao definimos a posio atual do registro ativo usando a propriedade
bookmark
Definimos o ndice ativo (codigo que foi criando anteriormente Solicitamos o cdigo do cliente,
armazenando o valor na varivel critrio.
Se (If) criterio for diferente (<>) de vazio (empty), ento um valor foi fornecido e podemos iniciar a
localizao usando o mtodo seek. Se no for informado nenhum valor para a varivel criterio
retormamos o ponteiro de registro para a posio anterior ao inicio da localizao.
Se o valor no for encontrado (Nomatch=True) o sistema emite uma mensagem (msgbox),
informando ao usurio e posiciona o ponteiro de registro na posio anterior a busca.

CDIGO DO EVENTO REPOSITION


Private Sub dtactl_Reposition()
If dtacli.Recordset.RecordCount < > 0 Then
incluir(0).Enabled = True
excluir(1).Enabled = True
dtacli.Caption = "Total de Clientes: " & dtactl.Recordset.RecordCount
Else
excluir(1).Enabled = False
incluir(0).Enabled = True
gravar(2).Enabled = False
dtacli.Caption = "O arquivo esta vazio"
End If
End Sub
O evento Reposition ocorre quando o Data control move-se de um registro para outro. No cdigo
acima cada vez que o o evento Reposition disparado atualizamos a propriedade Caption do
controle de dados atribuando a mesma o nmero total de registro do arquivo via propriedade
RecordCount. Alm disso habilitamos os botes incluir e excluir se houver registros no arquivo e
desabilitamos os botes excluir e gravar se o arquivo estiver vazio.

CDIGO DO EVENTO VALIDATE


Private Sub dtactl_Validate(Action As Integer, Save As Integer)
If Save Then
Select Case MsgBox("Deseja Salvar Alteraes ?", vbQuestion + vbYesNo)
Case vbYes '6
If nome.Text = Empty Then
MsgBox "Nome do Cliente deve ser informado !",, "Gravar Clientes"
nome.SetFocus
Save = False 'nao salva os dados
Action = vbDataActionCancel 'Cancela acao
Exit Sub
ElseIf endereco.Text = Empty Then
MsgBox "Endereco do Cliente deve ser informado !",, "Gravar Clientes"
endereco.SetFocus
Save = False
Action = vbDataActionCancel
Exit Sub
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br

91

Grupo iPED - Curso de Visual Basic 6


ElseIf cidade.Text = Empty Then
MsgBox "Por favor, informe a cidade do Cliente !",, "Gravar Clientes"
cidade.SetFocus
Save = False
Action = vbDataActionCancel
Exit Sub
ElseIf cep.Text = Empty Then
MsgBox "Cep do Cliente deve ser informado !",, "Gravar Clientes"
cep.SetFocus
Save = False
Action = vbDataActionCancel
Exit Sub
ElseIf uf.Text = Empty Then
MsgBox "Por favor, informe a UF do Cliente !",, "Gravar Clientes"
uf.SetFocus
Save = False
Action = vbDataActionCancel
Exit Sub
End If
Case vbNo '7
Save = False
End Select
End If
End Sub
O evento Validate acionado quando o Data Control est para mover-se de um registro para um
novo. Nesse meio tempo voc pode cancelar ou no as mudanas feitas no registro. A sub rotina do
evento Validate possui dois argumentos:
Action Descreve o evento que causou o evento Validate
Save
Assume dois valores
True se qualquer dado for modificado
False se no houver modificao
Utilizamos o evento para validar os dados, cancelar a ao (vbDataActionCancel) e mudar o valor
de Save quando necessrio.

CDIGO PARA TRATAMENTO DE ERROS


Private Sub dtactl_error(dataerr As Integer, response As Integer)
'trata erros quando nenhum cdigo esta sendo executado
Select Case dataerr
Case 3044 'caminho invalido
MsgBox "O caminho informado no valido, verifique !"
End 'uma maneira muito rude de interromper sua aplicacao, mas...
Case 3024 'nao achou banco de dados
MsgBox "O arquivo definido no foi encontrado !"
End
Case Else
'MsgBox "Erro em : " & Error$(dataerr) 'para mostrar o erro.
response = vbDataErrcontinue 'ou vbdataErrdisplay

92

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6

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.

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

93

Grupo iPED - Curso de Visual Basic 6

FUNES

94

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6

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

Grupo iPED - Curso de Visual Basic 6


A funo DateValue( ) aceita uma string de data validamente interpretvel e a converte em uma
data variant do tipo7. Esse contedo segue o formato de assinatura de tempo visvel usado pela
varivel interna Now. Ele representa o nmero de dias que se passaram desde 30 de dezembro de
1899. Os formatos de data aceitveis so dd-mm-aaa, dd-mm-aa, dd/mm/aaaa e dd/mm/aa. A
funo TimeValue( ) converte uma string de temo validamente interpretvel em uma hora variant do
tipo7. O formato desse valor tambm segue o formato visvel usado por Now.
Day ( ), WeekDay( ), Month( ) e Year( )
Propsito: Representao de componentes de data
Sintaxe:
variavel% = Day(assinatura)
variavel% = WeekDay(assinatura)
variavel% = Month(assinatura)
variavel% = Year(assinatura)
Cada funo deste conjunto aceita um valor de dupla preciso como seu parmetro, com o formato
dos nmeros nesse valor coincidindo com o do formato da assinatura usado pela varivel interna
Now. A funo Day( ) retorna o dia do ms da data especificada.Da mesma forma, Month( ) retorna
o ms do ano, e Year( ) retorna o ano atual. Weekday( ) retorna o nmero do dia da semana, onde
1 Domingo.
EOF( )
Propsito: Determinao do final do arquivo de dados
Sintaxe: variavel% = EOF(canal%)
A funo EOF( ) indica se o ponteiro de arquivo de um canal% especificado est atualmente dentro
de seus limites. Se o ponteiro do arquivo tiver atingido o final do arquivo, EOF( ) retorna um valor
booleano True(-1). Se houver ainda mais elementos de dados ou bytes a serem lidos dentro de um
arquivo de dados aberto, EOF( ) retorna False(0). A funo s trabalha com arquivos que tenham
um canal% aberto previamente com a declarao Open, e que sejam considerados atualmente
abertos pelo intepretador.
Error$( )
Propsito: Aquisio de descrio de erro.
Sintaxe: String$ = Error$(coderro%)
Nesta sintaxe, coderro% um valor inteiro correspondente a um cdigo de erro vlido. Voc pode
usar a varivel interna Err como coderro%.
A funo Error$( ) retorna uma string de texto que descreve o cdigo de erro passado a funo,
dentro da varivel de string String$.
FileAttr( )
Propsito: Aquisio de tipo de arquivo de dados
Sintaxe: definicao% = FileAttr(canal%, atributo%)
Quando atributo% declarado como 1, a funo FileAttr( ) retorna um valor que descreve o modo
de acesso a arquivo de dados atribudo ao canal de dados especificado. Essa valor pode ser
qualquer dos seguintes:
1 Input(entrada) seqncial
2 Output(sada) seqncial
4 Random(aleatrio)
8 Append(anexao) seqncial
32 Binary(binrio)
Quando atributo% declarado como 2, a funo FileAttr( ) retorna um valor representando o
gerenciador de arquivo ou nmero de acesso atribudo a ele pelo ambiente Microsoft Windows.
Voc pode usar esse gerenciador em conjunto com instrues para a API do Windows.
Fix( )
Propsito: Arredondamento numrico
Sintaxe: solucao% = Fix(expressao)
A funo Fix( ) remove qualquer valor fracionrio do valor simplificado logicamente de expressao,
deixando um nmero inteiro. Esse valor retornado na varivel solucao%.

96

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6

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

Grupo iPED - Curso de Visual Basic 6


A funo InputBox$( ) usa a mensagem em mensagem$ como um pedido para que uma resposta
textual seja inserida pelo usurio em uma linha de texto aparecendo no painel de dilogo. O
contedo dessa inha est limitado a um mximo de 31 caracteres, que pode ser definido
antecipadamente pela expresso de default$. O ttulo do painel de entrada pode opcionalmente ser
expresso como titulo$; se o ttulo no estiver expresso, a barra de ttulo ser deixada em branco.
Normalmente, o painel de entrada aparece no centro da tela. Se ele estiver colocado em algum
outro lugar, o ponto de origem da janela pode ser expresso como coordenadas coordx%, coordy%.
Uma caixa de entrada sempre contm dois botes: OK e Cancel. Se o usurio clica em Cancel, o
contedo de resposta$ permanece como uma string nula. Se o usurio clica em OK, o contedo da
linha de texto retornado como resposta$.
InStr( )
Propsito: Procura de fragmento de string
Sintaxe: posicao& = InStr([primeiro_carac&, ]exp_string1$, exp_string2$[, compara%])
A funo InStr( ) incia uma procura pela string ou concatenao de strings expressa por
exp_string2$, dentro da string maior exp_string2$. O comprimento de exp_strin2$ precisa ser menor
que 65.536 caracteres. Se a procura resulta em uma coincidncia, o nmero do caractere da string
maior onde o primeiro caractere da string menor aparece retornado na varivel de inteiro longo
posicao&. O primeiro caractere da string maior considerado o caractere nmero 1. Se a string
menor no aparecer exatamente dentro da string maior, ou se exp_string2$ for maior que
exp_string1$, a funo retornar uma valor nulo (0).

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

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6


A funo LCase$( ) converte em letras minsculas todos os caracteres alfabticos que aparecem
dentro da string ou concatenao de strings expressa exp_string$. De modo similar, a funo
UCase$( ) converte em letras maisculas todos os caracteres alfabticos aparecendo dentro da
string ou concatenao de strings expressa exp_string$.
Left$( ) e Right$( )
Propsito: Segmentao de string
Sintaxe:
substring$ = Left$(string$, numero%)
substring$ = Right$(string$, numero%)
A funo Left( ) extrai seqncialmente os primeiros caracteres numero% da string maior string$ e
os atribui como contedo da varivel de string menor substring$. Da mesma forma, a funo Right$(
) extrai seqncialmente os ltimos caracteres
numero% da string maior string$ e atribui esses caracteres varivel de string menor substring$.
Em ambas as funes, se numero% for maior que o comprimento de string$, toda a string ser
retornada em substring$ sem quaisquer caracteres adicionados a qualquer lado da string.
Len( )
Propsito: Aquisio do comprimento de uma string
Sintaxe: valor% = Len(exp_string$)
Nessa sintaxe, exp_string$ qualquer expresso que rena uma ou mais strings de texto
alfanumrico.
A funo Len( ) retorna o nmero de caracteres armazenados dentro da string expressa, na varivel
numrica valor%.
LoadPicture( )
Propsito: Aquisio de arquivo grfico
Sintaxe: [TermVirt.]Picture = LoadPicture("nomearq$")
Onde nomearq$ se refere a um arquivo com a extenso BMP (bitmap do Windows), ICO(cone
padro), ou WMF (meta-arquivo do windows).
A funo LoadPicture( ) carrega o arquivo de imagem especificado no controle terminal virtual
designado por TermVirt.
Loc( )
Propsito: Retorna a posio do ponteiro de dados do arquivo
Sintaxe: posicao& = Loc(canal%)
A funo Loc( ) retorna a posio do armazenamento ou recuperao anterior de um arquivo de
dados aberto, cujo nmero canal% esteja especificado entre os parnteses. Em arquivos de acesso
aleatrio, a funo Loc( ) retorna o nmero do elemento de dados ou registro anterior, onde 1
igual ao nmero do primeiro elemento do arquivo. Em arquivo de acesso seqncial, Loc( ) retorna
um valor arredondado equivalente posio em bytes atual do ponteiro de dados - e no a posio
do elemento ou registro - dividida por 128. Em arquivos de acesso binrio, Loc( ) retorna a posio
do byte previamente escrito ou lido no arquivo. O sinal # antes de canal% omitido nessa funo.
LOF( )
Propsito: Aquisio de comprimento de arquivo de dados
Sintaxe: compr% = LOF(canal%)
A funo LOF( ) retorna o comprimento em bytes do arquivo aberto cujo canal% aparece entre os
parnteses. O sinal # antes de canal% omitido nessa funo.
Log( ) e Exp( )
Propsito: Operaes logartmas
Sintaxe:
solucao = Log(expressao)
solucao = Exp(expressao)
A funo Log( ) retorna o logaritmo natural do valor reduzido logicamente de expressao, dentro da
varivel solucao. Da mesma forma, a funo Exp( ) retorna a base do logaritmo natural e elevada
potncia do valor reduzido logicamente de expressao, dentro da varivel solucao.
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br

99

Grupo iPED - Curso de Visual Basic 6

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

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6


Propsito: Aquisio da posio do ponteiro de dados
Sintaxe: posicao& = Seek(canal%)
A funo Seek( ) retorna a posio do ponteiro de arquivo dentro de um arquivo de dados aberto,
cujo nmero canal% esteja especificado entre os parnteses. Essa posio do ponteiro onde ir
ocorrer a prxima operao de leitura ou escrita. Em arquivos de acesso aleatrio, Seek( ) retorna o
nmero a ser dado ao prximo elemento de dados escrito ou lido no arquivo de dados. Em arquivos
de acesso seqncial ou binrio, seek( ) retorna a posio em bytes onde o prximo caractere de
dados ser escrito ou lido no arquivo de dados. O sinal # antes de canal% omitido nessa funo.
Sgn( )
Propsito: Aquisio do sinal do valor
Sintaxe: solucao% = Sgn(expressao)
A funo Sgn( ) retorna um valor que representa o sinal do valor reduzido logicamente de
expressao, dentro da varivel soluo%. Esse valor representativo pode ser um dos seguintes:
-1 Se a expressao negativa
0 Se expressao = 0
1 Se a expressao positiva
Sin( ), Cos( ), Tan( ) e Atn( )
Propsito: Operaes trigonomtricas
Sintaxe:
solucao = Sin(expressao)
solucao = Cos(expressao)
solucao = Tan(expressao)
solucao = Atn(expressao)
Essas quatro retornam, respectivamente, o seno, o cosseno, a tangente, e o arco-tangente do valor
reduzido logicamente de expresso. Esse valor retornado na varivel soluo em radianos, que
so divises de um arco circular.
Space$( )
Propsito: Ativao de mltiplos espao
Sintaxe: string$ = Space$(numero%)
A funo Space$( ) retorna uma srie de numero% caracteres de espao, entro da varivel de
seqncia sequencia$.
A funo Len( ) melhor utilizada quando ativada em uma procedure que contenha as outras
principais funes de string do vocabulrio do Visual Basic.
Spc( )
Propsito: Espaamento do cursor de texto
Sintaxe: Spc(espacos%)
A funo Spc( ) move o cursor de texto dentro de uma caixa de figura ou outro controle de "terminal
virtual" por um nmero especificado de espacos% para a direita. Um espao nesse caso a largura
do caractere espao no estilo e tamanho do tipo sendo utilizando.
Sqr( )
Propsito: Aquisio da raiz quadrada
Sintaxe: solucao = Sqr(expressao)
A funo Sqr( ) retorna a raiz quadrada do valor reduzido logicamente de expressao, dentro da
varivel solucao.
Str$( )
Propsito: Converso de valor para string
Sintaxe: solucao$ = Str$(valor)
A funo Str$( ) converte os dgitos contidos dentro de valor em uma string alfanumrica, que
colocada dentro da varivel solucao$. O valor da varivel valor no afetado pela converso.
String$( )
Propsito: Ativao de mltiplos caracteres
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br

101

Grupo iPED - Curso de Visual Basic 6


Sintaxe 1: palavra$ = String$(numero%, carac$)
Sintaxe 2: palavra$ = String$(numero%, carac_ascii%)
A funo String$( ) produz um numero% designado de caracteres repetidos como a varivel de
string palavra$. Sob a sintaxe 1 o caractere nico a ser repetido expresso como carac$, entre
aspas. Sob a Sintaxe 2, o caractere nico a ser repetido expresso como o cdigo ASCII
equivalente do caractere que expresso como carac_ascii%.
Tab( )
Propsito: Tabulao do cursos de texto
Sintaxe: Tab(coluna%)
A funo Tab( ) move o cursor de texto dentro de uma caixa de figura ou outro controle de "terminal
virtual" para a coluna% especificada. Uma coluna a qualquer instante equivale a aproximadamente
a largura mdia de cada caractere no estilo e tamanho do tipo sendo usado, que freqntemente
a largura de letra n minscula.
TypeOf
Propsito: Determinao de tipo de controle
Sintaxe: TypeOf Objeto Is tipo
A funo TypeOf usada dentro de uma expresso para retornar um valor True/False, significando
se o Objeto declarado - referido pelo uso de um nome de varivel de objeto - representativo de
um tipo particular de objeto reconhecido pelo interpretador. Os termos de tipo de objeto
reconhecidos pela Standard Edition do Visual Basic so os seguintes:
CheckBox
ComboBox
CommandButton
DirListBox
DriveListBox
FileListBox
Frame
Grid
HScrollBar
Image
Label
Line
ListBox
Menu
OptionButton
PictureBox
Shape
TextBox
Timer
VScrollBar
Controles personalizados adicionados caixa de ferramentas do VB podem utilizar seus prprios
termos de tipo.
Val( )
Propsito: Converso de string para valor
Sintaxe: solucao = val(string$)
Nessa sintaxe, string$ pode ser uma expresso que concatene vrias string. A funo Val( )
converte o primeiro conjunto de dgitos com caracteres delimitadores de nmero em string$ para um
valor colocado dentro da varivel solucao. O primeiro caractere alfabtico encontrado dentro de
uma string cancela o processo de converso. Uma string totalmente alfabtica , portanto,
convertido em 0. O contedo de string$ no afetado por essa converso. O primeiro conjunto de
caracteres diferentes de espao em string$ precisa ser um conjunto de dgitos, ou quaisquer
caracteres que o interpretador do Visual Basic normalmente usa para distinguir nmeros
fracionrios. Os pontos decimais so reconhecidos como tais caracteres.
VarType( )
Propsito: Aquisio do tipo de uma variante.
Sintaxe: tipo% = VaType(variant)
0 Vazio
1 Nulo
2 Inteiro
3 Longo
4 Simples
5 Duplo
6 Moeda
7 Data
8 String

EXEMPLO FUNO RGB:


Dim red, rgbValue As Integer

102

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6


Dim i As Integer = 75
' Return the value for red.
red = RGB(255, 0, 0)
' Same as RGB(75, 139, 203).
rgbValue = RGB(i, 64 + i, 128 + i)

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

103

Grupo iPED - Curso de Visual Basic 6

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

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6

.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

Grupo iPED - Curso de Visual Basic 6


independente de ser ou no visvel no presente. Se algum dos twips ou todos eles estiverem
invisveis ou obstrudos por algum outro objeto grfico, seus valores de cor sero definidos mesmo
assim, e da modificao (se houver) ser refletida na tela quando esses twips forem tornados
visveis.
Se Objeto. for especificado, o mtodo definir os valores twip com relao s coordenadas do
objeto especificado. Caso contrrio, o sistema de coordenadas do formulrio que contm o mtodo
ser assumido. A forma que a linha torna retornvel atravs das propriedades .DrawStyle e
.DrawWidht, onde .DrawStyle representa o tipo de interrupo usada na linha (se houver) e
.DrawWidth representa a largura relativa da linha desenhada.
Se o primeiro par de coordenadas for omitido, o interpretador assumir que a linha deve se
estender do ltimo ponto plotado at as coordenadas especificadas pelo segundo par, que no
pode ser omitido. O hfen, contudo, permanece na instruo do mtodo. O ltimo ponto plotado em
um objeto grfico pode ser obtido atravs das propriedades .CurrentX e .CurrentY desse objeto. Se
nenhum ponto tiver sido plotado nesse objeto, as coordenadas iniciais (0,0) sero assumidas.
.Move
Propsito: Reposicionamento manual de controle
Sintaxe: Controle.Move esquerda[,topo%[, largura%[, altura%]]]
O mtodo .Move move o controle designado em um formulrio para a posio em coordenadas
desse formulrio especificada pelos parmetros esquerda% e topo%. Somente o parmetro
esquerda% precisa ser especificado para mover o controle horizontalmente para a nova posio de
tips esquerda%. Se topo% for especificado, o controle ser movido verticalmente tambm. Se
largura% ou altura% forem especificadas, o controle ser redimensionado depois de ser movido.
.NewPage
Propsito: Sinal de ejeo de pgina na impressora
Sintaxe: Printer.NewPage
O mtodo .NewPage chamado para ejetar a pgina sendo impressa. Esse sinal de ejeo
guardado dentro do Print Manager do Windows at ele despachar esse sinal para a impressora no
momento oportuno. A propriedade .Page do documento interno do aplicativo automaticamente
incrementada.
Para declarar que o final de um documento foi atingido, o mtodo .EndDoc chamado.

.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

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6


O mtodo .PSet define o valor de cor de um ponto de coordenada representado pelas coordenadas
(twipx!, twipy!). Se o ponto estiver atualmente visvel na tela, o pixel relativo esse ponto ao longo do
sistema de coordenadas de twips atual ter definido seu valor de cor. Se o ponto no estiver visvel
na tela, o ponto na memria ser definido de qualquer modo, e a mudana (se houver) ser refletida
na tela quando esse ponto for tornado visvel.
Se Objeto. for especificado, o mtodo definir o valor do ponto com relao s coordenadas do
objeto especificado. Caso contrrio, o sistema de coordenadas do formulrio que contm o mtodo
ser assumido. Se cor& for especificada, o mtodo .PSet definir o valor de cor do ponto com
qualquer valor inteiro longo no intervalo de 0 a 16.777.215, representando uma cor ou padro de
cores reconhecido pelo Microsoft Windows. O valor de cor& pode ser representado pela funo
RGB( ) ou QBCoor( ). Para redefinir um ponto - poara dar-lhe o valor da cor de fundo - o termo de
propriedade .BackColor pode ser usado como cor&. Se cor& no for especificada, o mtodo .PSet
definir o valor de cor do ponto como o valor da propriedade .ForeColor do objeto especificado.
Quando Step est no mtodo, o interpretador VB considera o sistema de coordenadas expresso em
(twipx!, twipy!) como sendo relativo ao ltimo ponto plotado, ou em relao a (0,0) se nenhum ponto
tiver sido plotado. O ltimo ponto plotado em um objeto grfico pode ser obtido atravs das
propriedades .CurentX e CurrentY desse objeto.
.Refresh
Propsito: Atualizao forada do contedo de um objeto
Sintaxe: Objeto.Refresh
O mtodo .Refresh diz ao interpretador para suspender temporariamente os processos
matemticos, por tempo suficiente para que ele atualize o contedo do Objeto especificado. Esse
contedo pode ter sido destinatrio de instrues grficas ou de alterao de texto, mas o
interpretador
pode
ter
deixado
de
lado
a
execuo
dessas

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

Grupo iPED - Curso de Visual Basic 6


Para o interpretador VB, inteiramente "legal" para um formulrio receber o foco. Em interpretaes
anteriores do paradigma focus, o controle que tinha o foco era mantido pelo formulrio que tinha o
foco.
No Visual Basic, oferecida uma alternativa para esse dualismo. Agora, o formulrio que tem o foco
reside dentro do formulrio ativo. Esse formulrio ento dito como sendo ativado ou desativado
pelo usurio. Ambas essas aes podem ser registradas como eventos, e so atribuidas ao
formulrio.
.SetText
Propsito: Colocao de texto no clipboard
Sintaxe: Clipboard.SetText string$[, formato%]
O mtodio .SetText coloca o texto atualmente referido como string$ no clipboard do sistema. Por
padro, o texto assumido como sendo do formato de dados 1, a menos que especificado como
&HBF00, situao na qual o texto assumido como sendo parte de uma operao de vnculo
dinmico.
.Show
Propsito: Exibio de formulrio na rea de trabalho
Sintaxe: [nomeform.]Show [estilo]
O mtodo .Show exibe um formulrio que se encontre em seu estado carregado, embora no
visvel.
Se
o
formulrio
no
tiver
sido
carregado
ainda
na
rea
de
trabalho, ele ser carregado automaticamente, e o procedimento de evento Sub Form Load( ) desse
formulrio, se houver, ser disparado. Se o nomeform for omitido, o formulrio grfico
compartilhando o mdulo atual com o procedimento atualmente em execuo ser mostrado. O
valor estilo opcional, quando definido como 1 (0 o padro) torna modal o formulrio exibido - em
outras palavras, nenhuma outra janela pode aceitar entrada do usurio at que se saia deste
formulrio.
.TextHeight e .TextWidth
Propsito: Aquisio de tamanho de texto
Sintaxe: valor%=[Objeto.]TextHeight(string$) | valor%=[Objeto.]TextWidht(string$)
Os mtodos .TextHeight e .TextWidth so chamados como funes, exceto por serem espressos
com o uso de sintaxe orientada para objeto. Esses mtodos retornam a altura e largura,
respectivamente, do texto expresso em string$ como ele apareceria no Objeto especificado se
impresso atravs do mtodo .Print. Esses valores so retornados no inteiro valor% como se os
mtodos fossem funes. Esses mtodos s funcionam com objetos de terminal virtual como caixa
de figura ou formulrios, ou o dispositivo impressora. Se Objeto no for especificado, o formulrio
que contm a procedure atualmente em execuo ser usado.
.ZOrder
Propsito: Designar a exposio na tela
Sintaxe: [Controle.]ZOrder posicao%
O mtodo .ZOrder define a ordem de representao do Controle designado dentro de seu
formulrio para a posicao% dada. Aqueles controles aos quais se deu uma posicao% mais baixa
so representados primeiro; auqeles com nmeros seguintes so representados depois. Se a rea
ocupada por um controle posterior na seqncia se sobrepor a qualquer dos controles anteriores, o
controle posterior aparecer na frente daquele ao qual se sobrepor.
A ordem na qual o programador coloca os controles quando da estruturao estabelece a ordem z
natural dos controles em um formulrio. Como .ZOrder um mtodo e no uma propriedade ele s
pode ser usado durante o tempo de execuo de um aplicativo para alterar a seqncia de
exibio.

108

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6

COMPILANDO
PROJETOS

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

109

Grupo iPED - Curso de Visual Basic 6

CRIANDO EXECUTVEL

1 Clique no menu File, em seguida clique na opo Make Project1.exe.

2 Basta clicar no projeto e depois no boto OK

110

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6

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

2- Nesta tela mantenha selecionado a opo Setup e clique em Next>.

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

111

Grupo iPED - Curso de Visual Basic 6

3- Selecione o tipo Folder, no caso tipo pasta, e clique em Next>.

4- Escolha o projeto que deseja criar o setup e clique em Next>.

112

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6

5- De um nome ao seu setup e clique em Finish e pronto.

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

113

Grupo iPED - Curso de Visual Basic 6

CRIANDO
PROJETOS

114

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6

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:

- Agora insira o seguinte cdigo no formulrio:


' Atencao : Partes deste programa foram adaptadas de programas de exemplo
' fornecidos pela Microsoft juntamente com o produto.
' -----------------------------------------------------------------------Dim Op1 As Double
' Primeiro operando.
Dim Op2 As Double
' Segundo operando.
Dim FlagDecimal As Integer ' Flag do Ponto Decimal.
Dim NumOps As Integer
' Numero de Operandos.
Dim UltimaEntrada As String ' Indica a ultima tecla pressionada.
Dim FlagOperacao As String ' Indica a operacao pendente
Const VERDADEIRO = -1
Const FALSO = 0
' Procedure para a tecla C (Cancela).
' Reseta o display e inicializa variaveis.
'
Private Sub Cancel_Click()
Number(0).SetFocus 'Volta o Controle para matriz de Numeros
Visor.Caption = "0."
Form_Load
End Sub
' Procedure para a tecla CE (Cancela Entrada).
'
Private Sub CancelEntry_Click()
Number(0).SetFocus 'Volta o Controle para matriz de Numeros
Visor.Caption = "0."
FlagDecimal = FALSO
UltimaEntrada = "CE"
End Sub
' Procedure para a tecla de ponto decimal (.) .
' Se a ultima tecla pressiona fou operador, initializa
' Visor com "0." Senao, adiciona um ponto decimal no display.
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br

115

Grupo iPED - Curso de Visual Basic 6


'
Private Sub Decimal_Click()
If UltimaEntrada <> "NUMS" Then
Visor.Caption = "0."
ElseIf FlagDecimal = FALSO Then
Visor.Caption = Visor.Caption + "."
End If
FlagDecimal = VERDADEIRO
UltimaEntrada = "NUMS"
End Sub
' Rotina de Inicializacao para o formulario
' Inicia todas as variaveis
'
Private Sub Form_Load()
CENTRALIZA_FORM Me
FlagDecimal = FALSO
NumOps = 0
UltimaEntrada = "NONE"
FlagOperacao = " "
End Sub
Private Sub mnuSair_Click()
End
End Sub
' Procedure para as teclas de numeros (0-9).
' Adiciona o novo numero ao numero do display.
'
Private Sub Number_Click(Index As Integer)
If UltimaEntrada <> "NUMS" Then
Visor.Caption = ""
FlagDecimal = FALSO
End If
If Len(Visor.Caption) <= 15 Then 'Limita entrada valores a 15 digitos(inclusive pto decimal)
Visor.Caption = Visor.Caption + Number(Index).Caption
End If
UltimaEntrada = "NUMS"
Operator(4).SetFocus 'Posiciona o Foco na operao de igual
End Sub
Private Sub Number_KeyPress(Index As Integer, KeyAscii As Integer)
'*** FAZ LEITURA DE TECLAS PRESSIONADAS ***
If KeyAscii = 61 Then
Operator_Click (4) 'Sinal de Igual
ElseIf KeyAscii = 67 Or KeyAscii = 99 Then
Cancel_Click 'Botao de Limpar
ElseIf KeyAscii = 37 Then
Percent_Click 'Sinal de Porcentagem
ElseIf KeyAscii = 42 Or KeyAscii = 120 Or KeyAscii = 88 Then
Operator_Click (2) 'Sinal de Multiplicao
ElseIf KeyAscii = 43 Then
Operator_Click (1) 'Sinal de Mais
ElseIf KeyAscii = 45 Then
Operator_Click (3) 'Sinal de Igual
ElseIf KeyAscii = 46 Then
Decimal_Click
'Ponto decimal
ElseIf KeyAscii = 47 Then

116

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6


Operator_Click (0) 'Sinal de Divisao
ElseIf KeyAscii = 48 Then
Number_Click (0)
ElseIf KeyAscii = 49 Then
Number_Click (1)
ElseIf KeyAscii = 50 Then
Number_Click (2)
ElseIf KeyAscii = 51 Then
Number_Click (3)
ElseIf KeyAscii = 52 Then
Number_Click (4)
ElseIf KeyAscii = 53 Then
Number_Click (5)
ElseIf KeyAscii = 54 Then
Number_Click (6)
ElseIf KeyAscii = 55 Then
Number_Click (7)
ElseIf KeyAscii = 56 Then
Number_Click (8)
ElseIf KeyAscii = 57 Then
Number_Click (9)
End If

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

Grupo iPED - Curso de Visual Basic 6

Private Sub Operator_KeyPress(Index As Integer, KeyAscii As Integer)


'*** FAZ LEITURA DE TECLAS PRESSIONADAS ***
If KeyAscii = 61 Then
Operator_Click (4) 'Sinal de Igual
ElseIf KeyAscii = 67 Or KeyAscii = 99 Then
Cancel_Click
'Botao de Limpar
ElseIf KeyAscii = 37 Then
Percent_Click 'Sinal de Porcentagem
ElseIf KeyAscii = 42 Or KeyAscii = 120 Or KeyAscii = 88 Then
Operator_Click (2) 'Sinal de Multiplicao
ElseIf KeyAscii = 43 Then
Operator_Click (1) 'Sinal de Mais
ElseIf KeyAscii = 45 Then
Operator_Click (3) 'Sinal de Igual
ElseIf KeyAscii = 46 Then
Decimal_Click 'Ponto decimal
ElseIf KeyAscii = 47 Then
Operator_Click (0) 'Sinal de Divisao
ElseIf KeyAscii = 48 Then
Number_Click (0)
ElseIf KeyAscii = 49 Then
Number_Click (1)
ElseIf KeyAscii = 50 Then
Number_Click (2)
ElseIf KeyAscii = 51 Then
Number_Click (3)
ElseIf KeyAscii = 52 Then
Number_Click (4)
ElseIf KeyAscii = 53 Then
Number_Click (5)
ElseIf KeyAscii = 54 Then
Number_Click (6)
ElseIf KeyAscii = 55 Then
Number_Click (7)
ElseIf KeyAscii = 56 Then
Number_Click (8)
ElseIf KeyAscii = 57 Then
Number_Click (9)
End If
End Sub
' Procedure para a tecla de percentagem (%).
' Computa and mostra a percentagem do primeiro operando.
'
Private Sub Percent_Click()
Visor.Caption = Format$(Op1 * Val(Visor.Caption) / 100)
End Sub
Public Sub CENTRALIZA_FORM(Formulario As Form)
On Error Resume Next 'Evita erro caso o usurio minimize o Form
With Formulario
.Left = (Screen.Width - .Width) / 2 'Alinha o form no horizontalmente no centro
.Top = (Screen.Height - .Height) / 2 'Alinha o form no verticalmente no centro
End With

118

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6

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

2- A seguir insira no evento Validate do controle text1.text o seguinte cdigo:


Private Sub Text1_Validate(keepfocus As Boolean)
If Not IsNumeric(Text1.text) Or Len(Text2.text) < 4 Then
keepfocus = True
MsgBox "Informe um valor valido !", vbInformation, "Formatando telefone"
Exit Sub
End If
Text1.text = FormataTelefone(Text1.text)
End Sub
A funo que realiza a formatao a seguinte: ( fique a vontade para ajust-la a seu caso...)
Function FormataTelefone(ByVal text As String) As String
Dim i As Long
' ignora vazio
If Len(text) = 0 Then Exit Function
'verifica valores invalidos
For i = Len(text) To 1 Step -1
If InStr("0123456789", Mid$(text, i, 1)) = 0 Then
text = Left$(text, i - 1) & Mid$(text, i + 1)
End If
Next
' ajusta a posicao correta
If Len(text) <= 7 Then
FormataTelefone = Format$(text, "!@@@-@@@@")
ElseIf Len(text) > 7 And Len(text) <= 9 Then
FormataTelefone = Format$(text, "!(@@) @@@-@@@@")
ElseIf Len(text) > 9 Then
FormataTelefone = Format$(text, "!(@@) @@@@-@@@@")
End If
End Function
Se o usurio no informar um valor numrico ou um valor menor que 4 caracteres Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br

119

Grupo iPED - Curso de Visual Basic 6

If Not IsNumeric(Text1.text) Or Len(Text2.text) < 4 Then


o foco mantido no controle e uma mensagem exibida para o usurio:
keepfocus = True
MsgBox "Informe um valor valido !", vbInformation, "Formatando telefone"
Exit Sub
Se o valor estiver dentro do esperado , a funo FormataTelefone invocada e a formatao ocorre
como na figura mostrada acima.

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

2-Insira o controle Timer no formulrio e defina as propriedades

Valores das prop. de Timer1


------------------------------Propriedade
Valor
------------------------------Name
Timer1
Enabled
True
Interval
60
--------------------------------

3-A seguir insira o cdigo abaixo no evento timer do temporizador:


Private Sub Timer1_Timer()
Dim CX, CY, Msg, XPos, YPos ' Declare variables.

120

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6


ScaleMode = 3 ' Set ScaleMode to
' pixels.
DrawWidth = 5 ' Set DrawWidth.
ForeColor = QBColor(4) ' Set background to red.
FontSize = 24 ' Set point size.
CX = ScaleWidth / 2 ' Get horizontal center.
CY = ScaleHeight / 2 ' Get vertical center.
Cls ' Clear form.
Msg = "Bom Dia!"
CurrentX = CX - TextWidth(Msg) / 2 ' Horizontal position.
CurrentY = CY - TextHeight(Msg) ' Vertical position.
Print Msg ' Print message.
Do
Counter = Counter + 1
XPos = Rnd * ScaleWidth ' Get horizontal position.
YPos = Rnd * ScaleHeight ' Get vertical position.
PSet (XPos, YPos), QBColor(Rnd * 15) ' Draw confetti.
DoEvents ' Yield to other
If Counter > 2000 Then 'contador para limpar a tela
Counter = 0
Form1.Cls
End If
Loop ' processando
End Sub

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

5-Para encerrar o programa utilize os eventos MouseMove , MouseDown


e KeyDown, pois quando o usurio pressionar algo ou movimentar o mouse o
Screen Saver deve ser encerrado. Insira os cdigos como descrito abaixo :
Private Sub Form_MouseDown(Button As Integer,Shift As Integer,X As Single,Y As Single)
End
End Sub
Private Sub Form_MouseUp(Button As Integer,Shift As Integer,X As Single,Y As Single)
End
End Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
End
End Sub
6-Como o evento MouseMove ativado quando o form for lido pela primeira
vez, insira o cdigo abaixo no evento MouseMouse para no fechar o programa na sua
ativao.

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

121

Grupo iPED - Curso de Visual Basic 6


Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Static conta As Integer
If conta > 3 Then
End
Else
conta = conta + 1
End If
End Sub

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

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6

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

IMPRIMIR COM OBJETO PRINTER


Objeto Printer. Voc no precisa fazer nenhuma referncia para us-lo no seu projeto.

Imprimir um texto em uma posio especfica


Private Sub Command1_Click()
' este exemplo ir imprimir Macoratti na coordenada 100,300
Printer.CurrentX = 100
Printer.CurrentY = 300
Printer.Print "Iped cursos online"
' O comando EndDoc envia o texto para a impressora
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br

123

Grupo iPED - Curso de Visual Basic 6


Printer.EndDoc
End Sub
Imprimir um texto com alinhamento especfico
Public Sub ImprimeTextoAlinhado(texto As String, Alignment As String)
Select Case Alignment
Case "Centro"
Printer.CurrentX = (Printer.ScaleWidth - Printer.TextWidth(texto)) \ 2
Case "Esquerda"
Printer.CurrentX = 0
Case "Direita"
Printer.CurrentX = Printer.ScaleWidth - Printer.TextWidth(texto)
End Select
Printer.Print texto
Printer.EndDoc
End Sub
Private Sub Command1_Click()
'Para escolher o alinhamento informe ("Centro", "Esquerda" ou "Direita")
Call ImprimeTextoAlinhado("IPED", "Centro")
End Sub

124

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Visual Basic 6

Imprimir uma linha


Public Sub ImprimeLinha(Largura As Single)
Printer.Line (0, Printer.CurrentY)-(Printer.ScaleWidth, Printer.CurrentY + largura)BF
Printer.EndDoc
End Sub
Private Sub Command1_Click()
' 40 indica a largura da linha
ImprimeLinha (40)
End Sub

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

Proibida a reproduo por qualquer meio eletrnico ou impresso.


Grupo iPED - Todos os direitos reservados - www.iped.com.br

125