Beruflich Dokumente
Kultur Dokumente
br
AACTEC
Computadores
6480- 4288
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
Passo a Passo
AACTEC
volcanic@ieg.com.br
1 Edio
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
Sumrio
1
O FOCO ................................................................................................................ 75
4.1
O FOCO ........................................................................................................... 77
4.1.1
Propriedades TabIndex e TabStop ......................................................... 77
4.1.2
A Tecla Enter.......................................................................................... 78
4.1.3
Mtodo SetFocus .................................................................................... 80
4.1.4
4.1.5
5
MASKEDBOX ..................................................................................................88
COMMONDIALOG ............................................................................................92
MENUS..................................................................................................................99
6.1
MENUS ..........................................................................................................101
6.1.1
Criando Menus .....................................................................................101
6.1.2
Menus Instantneos ..............................................................................107
VARIVEIS E MATRIZES..............................................................................109
7.1
AS CARACTERSTICAS DE UMA VARIVEL.....................................................111
7.1.1
O Comando Dim ...................................................................................111
7.1.2
Os Tipos de Varivel ............................................................................113
7.1.3
As Variveis Nmericas........................................................................114
7.1.4
Varivel String......................................................................................114
7.1.5
Varivel Boolean ..................................................................................115
7.1.6
Varivel Date........................................................................................115
7.1.7
Varivel Object.....................................................................................116
7.1.8
Varivel Variant ...................................................................................116
7.1.9
Null .......................................................................................................116
7.2
ABRANGNCIA E TEMPO DE VIDA DE UMA VARIVEL ...................................116
7.3
MATRIZES......................................................................................................122
7.3.1
Matrizes Unidimensional......................................................................123
7.3.2
Matrizes Multidimensional ...................................................................123
7.3.3
Matrizes Dinmicas ..............................................................................124
7.3.4
Matrizes no ComboBox e no ListBox....................................................126
7.3.5
A Propriedade Index dos Objetos.........................................................126
OPERADORES ..................................................................................................131
8.1
OPERADORES .................................................................................................132
8.1.1
Operadores Matemticos......................................................................132
8.1.2
Operadores Relacionais .......................................................................133
8.1.3
Operadores Lgicos..............................................................................133
8.1.4
Operador de String ...............................................................................134
Estewww.megacursos.com.br
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
10
14.2
Estewww.megacursos.com.br
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
1 APRESENTAO DO
VISUAL BASIC 5
Controles Bsicos
Estewww.megacursos.com.br
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
A Verso 5 desta linguagem destinado exclusivamente a criao de
programas em 32 bits, ou seja, para Windows 95 ou superior ou Windows NT.
Nesta verso, quando abrimos o Visual Basic, ele nos d uma sria de
opes sobre o que desejamos criar: um executvel, uma DLL, um ActiveX,
etc. Por padro usaremos somente "standard EXE" que o usual para criao
de programas executveis.
Controles Bsicos
Sempre use teclas de atalho para o usurio cortar caminho.
Lembre-se que nem todos usurios gostam de usar o mouse
intensivamente. Alguns preferem, sempre que podem, usar o
teclado. Ento d esta opo.
Sempre d a possibilidade ao usurio de cancelar uma alterao
feita em uma determinada janela. O boto Cancelar existe nos
melhores programas existente no mercado.
Quando um usurio escolhe uma aplicao para Windows para sua
empresa e diverso, ele sabe que no vai encontrar dificuldades na
operao do programa, pois todos so semelhantes em vrios
aspectos, ento mantenha essa semelhana.
11
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
12
Controles Bsicos
dos controles, pode-se marcar ou desmarcar quais controles necessitamos.
Para termos acesso a todos os controles padro do Visual Basic,
selecionamos todos que possuem a extenso OCX. Confira no campo Active
Setup Control Library o nome do arquivo que possui o controle.
13
Este www.megacursos.com.br
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
Titulo Properties e o nome dado para o
formulrio selecionado no projeto.
Nesta caixa aparece no canto direito o nome
dado pelo usurio ao Objeto selecionado, e
no canto direito o tipo de Objeto. No exemplo
mostramos o objeto de nome Form1 tipo
Form (formulrio). Podemos tambm
selecionar outro objeto que existe em nosso
formulrio nesta caixa, clicando na seta para
baixo, e selecionando outro objeto que ali
esteja disponvel para seleo.
14
Controles Bsicos
cmdCancelar, este o nome que vamos usar na codificao deste objeto. Este
nome fica atribudo ao objeto.
Para se dar nomes ao alguns objetos algumas regras tem que serem
seguidas, como por exemplo, no pode conter espaos em branco, no se
pode usar sinais como #$&+-^ . Como padro acostuma-se a usar as trs
primeiras letras do nome para abreviar o tipo do Objeto, para durante a
codificao do programa facilitar na identificao de qual objeto estamos
usando. Por exemplo: Um boto de comando do tipo CommandButton, e
abreviamos como cmd, um formulrio do tipo Form, e abreviamos como
frm, uma mscara de edio do tipo MaskEdBox, e abreviamos como
msk. Essas abreviaes ficam a critrio do programador.
15
Estewww.megacursos.com.br
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
16
Controles Bsicos
Boto Fechar
Boto Maximizar
Boto Minimizar
rea de titulo.
Caption do
f
l
Menu de Controle.
rea onde sero inseridos os objetos para
criao de nosso formulrio.
Chamamos de
Control Box a unio
dos botes minimizar,
maximizar, fechar e o
menu de controle
+
+
Criando o objeto, com
boto do
mouse
apertado.
Soltando o boto do
mouse, o objeto criado
na posio e dimenso
escolhida.
escolha o
objeto do
tipo
CommandButt
om e
coloque-o
dentro do
formulrio.
17
Estewww.megacursos.com.br
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
Ao selecionar o formulrio
pretendido, aperte este boto e
o formulrio ir aparecer no
centro da tela. Caso o
componente no seja um
formulrio, este boto estar
desabilitado.
18
Controles Bsicos
bom lembrarmos que cada objeto possui vrios eventos diferentes, e
nossa tarefa bsica codificar cada evento que nosso programa necessitar.
Somente ocorre eventos durante a execuo do programa. Por exemplo,
existe um evento chamado Click, que para quando damos um click com o
mouse no objeto. Evento MouseMove para quando o mouse se movimentar
dentro do objeto. Evento KeyPress para quando um tecla for pressionada
dentro do objeto. Estudaremos mais detalhado esses eventos. Por ora
importante entender a utilidade deles, e qual a finalidade deles em nossa
codificao.
Objeto
a
ser
codificado. Quando
damos dois clickes
em um objeto, o
nome dele j vem
para este campo.
Estewww.megacursos.com.br
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
End Sub
O Cursor ficar piscando acima do comando End Sub,
esperando voc digitar algo ali.
20
Controles Bsicos
21
Estewww.megacursos.com.br
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
Nome do arquivo do
Projeto. Por
Default aparece o
nome Project1, mas
sempre bom
modificar para um
nome que sinalize
melhor o nome que
nosso projeto
(programa) ter.
22
Controles Bsicos
EXERCCIOS PROPOSTOS
1 - Descreva 5 botes da barra de botes que voc acha mais importante:
Nome
Descrio
Objetos:
Propriedades:
Formulrio:
Janela de Projetos:
Codificao:
23
Estewww.megacursos.com.br
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
4 - Crie um projeto da seguinte forma:
No Objeto Formulrio
coloque dois Command
Buttom no lado direito da
janela como no exemplo.
Depois muda as
propriedades Caption do
formulrio para Cadastro de
Paciente e Name para
frmCadastroPaciente. No
primeiro boto criado passe o
Caption para OK e Name
para cmdOk. O Outro boto
ter o Caption Fechar e o
Name cmdFechar. Pronto!
A interface esta pronta.
Vamos a codificao.
24
2 OS CONTROLES BSICOS
(A interface)
Form
CommandButton
Label
TextBox
CheckBox
OptionButton
Frame
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
26
Controles Bsicos
Estewww.megacursos.com.br
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
que o programa desenvolvido tenha as cores sempre adaptadas de acordo
com o padro de cores escolhido na aparncia do Windows ento deve-se
usar sempre as cores mostradas no "System" dessa propriedade.
BorderStyle: Muda o tipo de borda do formulrio. None: sem borda, sem
barra de titulo, sem menu de controle, sem boto maximizar e sem boto
minimizar, e no pode redimensionar a janela.
28
Controles Bsicos
janela, poder responder a eventos gerados pelo usurio, como clicar do
mouse, pressionamento de teclas, etc.
Font: Escolhe a fonte de letra padro que ser usada para todos objetos
inseridos neste formulrio.
Icon: Nesta propriedade escolhemos um arquivo de cone para associar a
esse formulrio. Esse cone o que vai aparecer quando a janela for
minimizada e no lado esquerda da barra de ttulo ( Menu de Controle ).
KeyPreview: determina se os eventos do teclado no formulrio sero
executados antes dos eventos correspondentes aos Objetos inseridos no
formulrio.
MaxButton: Habilita ou no o boto de maximizao.
MDIChild: Determina se a janela ser uma janela filha. Ou seja, ter uma outra
janela mestre que agrupara o Form que se esta criando.
MinButton: Habilita ou no o boto de minimizar.
MouseIcon: Sempre que o mouse for movido em cima do formulrio, o cone
associado a esta propriedade aparecer (desde que a propriedade
MousePointer esteja customizada).
MousePointer: Nesta propriedade especificamos o tipo de ponteiro que o
mouse ter quando se mover sobre o formulrio. Veja os tipos existentes:
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
3
Seleo de escrita
4
5
cone
Seleo de Mover Objetos
Redimensionamento na diagonal
Redimensionamento na vertical
Redimensionamento na diagonal
Redimensionamento na horizontal
10
Seleo alternada
11
Sinal de ocupado.
12
No disponvel ( Ocupado )
13
14
15
99
Controles Bsicos
Name = frmLanamentoExames
Configure a janela para no aparecer o boto de
Maximizar. Para isto mude a Propriedade MaxButton para
False.
Faa com que o ponteiro do mouse mude para o desenho de
um sinaleiro
com a luz vermelha acesa toda vez que o
mouse mover no formulrio. Para isto a propriedade
MousePointer deve ser Custom e na propriedade MouseIcon
identificamos a pasta (diretrio) onde esta o arquivo de
cone que contm o sinaleiro. Veja a figura:
O arquivo
correspondente
esta na pasta
Icons/Traffic e
chama
Trffc10c.ico
31
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
o que acontece.
32
Controles Bsicos
Cancel: Se esta opo for ajustada como
verdadeira, o boto ser associado a tecla
ESC, e sempre que pressionarmos esta
tecla ser como se tivssemos apertado o
boto.
Caption: O ttulo que ser exibido dentro
do boto.
Default: Estando o boto com essa
propriedade como True indica que este
boto ser o Padro da janela, e sempre
que apertarmos a tecla Enter ser como se
tivssemos apertado o boto.
Enabled: Determina se o boto ser
habilitado para pressionamento por parte
do usurio ou no.
Font: Escolhe a fonte de letra que o
Caption ter.
Name: O nome que daremos para o Objeto
boto de comando.
Visible: Determina se o boto ser visvel
para o usurio quando o programa estiver
em execuo.
33
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
grfico em seu interior. Se escolher Style do tipo "Graphical" o
CommandButton aceitar figuras, e elas devem ser inseridas na propriedade
Picture do objeto CommandButton
boto1
Boto2
Explicao
Caption
OK
Cancelar
Name
cmdOk
cmdCancelar
nomear o boto
Cancel
False
True
habilitar ESC
Default
True
False
habilitar ENTER
34
Controles Bsicos
D dois clickes no boto Cancelar. Ir aparecer a janela
de codificao para o boto Cancelar. Digite: Print Voc
apertou a tecla ESC.
Estando ainda na janela de codificao, leve o ponteiro
do mouse at o topo desta janela onde esta o nome: Object.
Na frente estar o nome do boto que estvamos trabalhando
na codificao. Aperte o boto. Ir aparecer o nome dos
objetos que temos: cmdCancelar, cmdOk, Form, e General.
35
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
2.1.3
apertarmos o boto
Controles Bsicos
BackStyle: Escolhe entre o fundo Transparente ou Opaco para o label.
BorderStyle: Escolhe entre colocar uma moldura envolvendo o label ou no.
Caption: A propriedade principal do label. Determina o texto que ser exibido
dentro do Objeto.
Enabled: Habilita ou desabilita o objeto. Quando esta em False fica com a cor
de seu contedo acinzentada.
Font: Escolhe a fonte de letra que ter o texto digitado na propriedade Caption.
ForeColor: Escolhe a cor da fonte de letra
Name: Nomeia o Objeto label. Como j foi dito importante que todos os
objetos seja nomeado. A inicial do label lbl.
Visible: Indica se o objeto ser visvel ou no para o usurio.
WordWrap: Quando o AutoSize esta em true, no possvel expandir o texto
digitado na propriedade Caption em outras linhas. Mas se passarmos essa
propriedade WordWrap para True isto poder ser feito, bastando para isto
dimensionarmos o label.
37
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
38
Controles Bsicos
Coloque 3 caixa de texto em nosso formulrio, de forma
que a disposio das mesmas fiquem como na figura abaixo.
TxtNome
txtSexo
TxtExame
Text
deixar vazio
deixar vazio
MaxLength
30
deixar
vazio
9
15
ForeColor
Vermelho
Preto
Preto
Propriedade
Label1
Label2
Label3
Name
lblNomePaciente
lblSexo
LblExame
39
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
Caption
Nome do Paciente
Sexo
AutoSize
True
True
True
Appearance
3D
3D
3D
Controles Bsicos
Change: Ocorre sempre que o usurio altera o valor contido na caixa de texto.
Click: Ocorre quando o usurio pressiona o boto esquerdo do mouse sobre a
caixa de texto.
DlbClick: Se o usurio apertar duas vezes o boto esquerdo do mouse sobre
a caixa de texto
KeyDown: Ocorre quando o usurio aperta uma tecla no teclado.
KeyUp: Ocorre quando o usurio solta a tecla apertada.
KeyPress: Ocorre quando uma tecla pressionada e solta. Como argumento
possui uma varivel cujo contedo a tecla pressionada (cdigo
correspondente na tabela ASCII).
Cod.
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Backspace
Tab
Enter
Esc
Cod.
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
Espao
!
"
#
$
%
&
'
(
)
*
+
,
.
/
0
1
2
3
4
5
6
7
8
9
:
;
<
Cod.
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
@
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
[
\
Cod.
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
`
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
{
|
41
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
29
30
31
61
=
93
]
125
62
>
94
^
126
63
?
95
_
127
Estes caracteres no so aceitos pelo Microsoft Windows.
Conhecendo os eventos e
vamos comear a us-los. No
que j criamos posicione o
txtNome e d dois clickes
janela assim:
}
~
Controles Bsicos
esta do lado direito da janela. Aparecer a lista de
Eventos disponveis para a caixa de texto. Click sobre o
nome KeyPress. Ele ir agora criar um outro procedimento
de evento chamado Private Sub txtNome_KeyPress(KeyAscii
As Integer). Vamos usar esse evento no objeto txtNome
para no aceitar o usurio digitar nmeros nesta caixa de
texto. A linha de comando ficar assim:
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
captulos. Por ora, para se ter um entendimento melhor do
que ocorreu durante a execuo deste evento vamos explicar
rapidamente essas novas expresses:
KeyAscii : uma varivel criada pelo evento KeyPress
cujo
contedo
ser
o
valor
(na
tabela
ASCII)
correspondente a tecla digitada.
VbKey0 : Uma constante que simboliza o nmero Zero.
vbKey9 : Uma constante que simboliza o nmero nove.
If : Comando condicional. Significa Se. Ou seja, se a
tecla digitado for maior ou igual a zero e tambm menor e
igual a nove ento faa algo.
Rode o programa e verifique que a caixa de texto j esta
devidamente codificada para no aceitar nmeros.
Para melhorarmos ainda mais nossa aplicao, vamos
analisar o seguinte: No podemos deixar o usurio digitar
o sexo do paciente antes de digitarmos o nome dele! Temos
que fazer uma codificao que verifique se o usurio
digitou o nome, e somente depois liberar a digitao do
sexo. OK? Vamos l!
Selecione o Objeto lblSexo e mude
Enabled dele para False, e o Objeto
tambm para False.
a propriedade
txtSexo.Enabled
Controles Bsicos
tiver leve o mouse at a caixa de combinao com
dos eventos e selecione a palavra Change.
a lista
Como
foi explicado acima, esse evento
acionado
sempre que o usurio altera um valor digitado na caixa de
texto. Mas isto no significa que na
caixa de texto
obrigatoriamente tem que existir um valor para ser
alterado. Na verdade quando est vazia e digitamos algo
ali estamos alterando seu contedo.
Com isto, conclumos que sempre que digitarmos algo ali
(letra, nmero, barra de espao, delete, Backspace, etc.)
o evento Change ser acionado.
Digite
aberta:
seguinte
cdigo
na
janela
de
codificao
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
digitou), for igual a vazio (), ento as propriedades
Enabled do lblSexo e do txtSexo sero desabilitadas,
caso contrario ( Else ), essas propriedades sero
habilitadas.
Note que podemos mudar a propriedade de um Objeto tanto
a nvel de codificao em tempo de execuo, como em tempo
de projeto.
Execute o programa, o digite seu nome na caixa de texto
Nome do Paciente. Observe que quando voc comear a
digitar automaticamente a caixa de texto Sexo ser
liberada.
Agora use a tecla Backspace para voltar a digitao e
apagar o nome digitado. Veja que quando se apaga o ultimo
caractere e a caixa de texto fica vazia as propriedades
Enabled do Sexo so desabilitadas automaticamente.
True
Text
Vazio
ScrollBars
2 - Vertical
46
Controles Bsicos
47
Estewww.megacursos.com.br
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
Value esta com
valor
0,
de
desmarcado, ou no
foi escolhido.
chkRaioX
chkSangue
chkGravidez
chkEspermo
grama
Caption
Raio X
Sangue
Gravidez
Espermogr
ama
Controles Bsicos
processado no computador porque pelo menos um exame ele
vai fazer. Depois vamos fazer uma rotina que verifica
isto.
Algumas outras alterao teremos que fazer tambm, como
por exemplo no deixar o programa aceitar que um paciente
do sexo masculino faa exame de Gravidez, ou do sexo
feminino fazer Espermograma. Mas antes de trabalharmos
nisto necessrio conhecermos mais um objeto importante.
49
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
Option1
Name
optMasculino
OptFeminino
Masculino
Feminino
Caption
Option2
Os Botes de
Opo quando so
inseridos no
formulrio
automaticamente
so conjugados, de
maneira que
quando
selecionamos um o
outro
desmarcado. No
importa quantos
sejam.
Controles Bsicos
Chame
a
janela
de
Codificao
e
na
rotina
txtNome_Change() altere para ter as seguintes linhas de
comando:
51
Estewww.megacursos.com.br
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
Colocamos Enabled = True para os exames liberados para
o objeto optMasculino e Enabled = False para os exames
que no esto liberados.
Faa a mesma coisa para o optFeminino agora.
Controles Bsicos
Enabled: Determina se todos todos os objetos colocados no interior da
moldura estar ou no disponvel para o usurio.
Name: Nome dado ao objeto. A inicial abreviada fra. Cuidado para no
colocar frm a abreviatura do Objeto Form.
53
Estewww.megacursos.com.br
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
EXERCCIOS PROPOSTOS
1 - Explique a finalidade dos Objetos:
Form:
CommandButton:
Label:
TextBox:
CheckBox:
OptionButton
Frame:
2 - Explique:
Controles Bsicos
Frame:
4 - Pela aparncia descreva que tipo de Borda possui os formulrios abaixo:
55
Estewww.megacursos.com.br
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
8 - O que um Evento?
56
Controles Bsicos
com 60 dias. Logicamente que no campo valor no poder aparecer letras.
57
Estewww.megacursos.com.br
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
58
Controles Bsicos
3 SELECIONANDO ITENS
ListBox
ComboBox
59
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
60
Selecionando Itens
Caixa de Lista
Vazia,
sem
nenhum
texto
digitado em seu
interior.
Caixa de Lista
Vazia
com
vrios nomes
inseridos na
propriedade
List
Estewww.megacursos.com.br
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
Style: CheckBox
Style: Standard
Selecionando Itens
CheckBox, onde os itens existentes no ListBox so acompanhados de um
quadradinho do lado esquerdo para se fazer a seleo dos itens. Para
multiplas selees esse tipo de ListBox mais intuitivo para o usurio.
63
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
SelCount: Quando a propriedade MultiSelect esta ativada, possibilitando a
seleo de vrios itens dentro da caixa de lista, o SelCount retorna a
quantidade de itens que foi selecionado.
Selected: Retorna True ou False sinalizando se algum item foi selecionado.
necessrio informar o ndice correspondente. Exemplo: Selected(2): Se o item
que possui o ndice 2 for selecionado retornar True, se qualquer outro for
selecionado retornar False.
Text: Retorna o texto do item selecionado. No necessita de ndice.
List: Retorna o texto do item especificado no ndice. Exemplo: List(2) ir
mostrar o texto existendo na lista referente ao ndice 2.
Boto1
Boto2
Boto3
Caption
Quantidade
ndice
Text
Name
cmdQuantidade
Cmdndice
cmdText
formulrio.
Propriedadades
Label1
Label2
Label3
AutoSize
True
True
True
Caption
deixar vazio
deixar vazio
deixar vazio
Name
lblQuantidade
Lblndice
lblText
Selecionando Itens
itens dentro da caixa de Lista. Quando apertar o boto
ndice
mostrar
o
ndice
correspondente
ao
item
selecionado. O boto Texto ir mostrar o texto selecionado
dentro do ListBox. Veja os Cdigos a serem usados:
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
O Mtodo RemoveItem retira do ListBox o item selecionado, e o Clear
limpa todo o Objeto.
Boto1
Caption
Adicionar
Remover
Limpa Tudo
Name
CmdAdicionar
cmdRemover
CmdLimpaTudo
Propriedadades
Caixa de Lista
Caixa de Texto
Name
LstNomes
txtNome
Text
Boto2
Boto3
Deixar Vazio
As propriedades
do formulrio
ser Relao de
Nomes para o
Caption e
frmRelaoDeNomes
para o Name.
Veja ao lado como
ficar a janela.
66
Selecionando Itens
O mtodo AddItem requer na
sua sintaxe o texto que ser
adicionado
ao
ListBox.
Chamamos ento o objeto
txtNome e sua propriedade Text
que contm o texto.
O mtodo RemoveItem necessita
do nmero do ndice que o item
existente dentro ListBox possui.
Para se obter este ndice usamos
a propriedade ListIndex.
Quantos
problemas.
Mas
vamos
ento
resolver
O Objeto txtNome
tem sua propriedade
Text adicionada ao
lstNomes,
e
em
seguida igualada a
um contedo vazio.
Resolvemos o primeiro problema. Rode o programa
comprove isto! Agora temos que desabilitar o boto
Adicionar e somente deix-lo habilitado quando o usurio
digitar algo na caixa de texto (objeto txtNome). Sendo
assim no corremos o risco de algo vazio ser inserido na
caixa de lista.
67
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
Primeiro passo ser selecionarmos em tempo de projeto o
Objeto cmdAdicionar. V na propriedade Enabled e passe
para False.
Crie agora um evento Change para a caixa de texto
txtNome:
Veja
que
na
codificao verificamos
se
o
txtNome
esta
vazio.
Se
tiver
desabilita
o
boto
Adicionar, e no tiver
vazio habilita o boto.
Usamos o Evento Change porque ele o responsvel pela
verificao constante do que foi digitado na caixa de
texto. Sempre que digitamos, alteramos ou apagamos algo
numa caixa de texto o evento Change chamado.
Note agora que se comearmos a digitar um nome qualquer
na caixa de texto o boto aparece. Se apagarmos o contedo
digitado, com delete ou backspace, o boto desabilitado.
Para resolver o terceiro problema, teremos que primeiro
somente aceitar o mtodo RemoveItem se houver um item
selecionado. Se no houver ele no executa esse mtodo.
Ento vamos a luta!
Em tempo de projeto mude a propriedade Enabled do
boto Remover para False. Iremos habilita-lo somente
quando um item for selecionado usando o evento click do
objeto lstNomes.
No evento Click do
objeto
lstNomes
solicitado
ao
programa
para
habilitar
o
boto
remover.
Depois,
quando
o
usurio
aperto o boto e
remover
o
item
pretendido,
colocamos
o
boto
remover
novamente
desabilitado.
68
Selecionando Itens
Rode o programa e veja o que acontece.
Para o usurio que esta digitando desconfortaste ter
que digitar um nome e ter que usar o mouse (tirar a mo do
teclado) para inserir um nome e depois clicar novamente na
caixa de texto para digitar outro nome. Para resolver esse
problema simples. Selecione o boto Adicionar e mude a
propriedade Default dele para True. Assim sempre que o
usurio digitar um nome e teclar ENTER ser como se
tivesse apertado o boto Adicionar.
Agora o programa est pronto! Pode vend-lo!
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
Selecionando Itens
3.2.2 Os Mtodos
Usamos para o ComboBox os mesmos mtodos usados para o
ListBox: AddItem, RemoveItem e Clear. O modo de manipul-los na janela de
codificao tambm o mesmo.
um
evento
Load
para
formulrio
da
seguinte
71
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
72
Selecionando Itens
EXERCCIOS PROPOSTOS
1 - Descreva as seguintes propriedades do ListBox:
List:
Sorted:
MultiSelect:
Selected:
ListCount
ListIndex:
73
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
5 - Quais so as diferenas entre o ListBox e o ComboBox?
74
Selecionando Itens
4 O FOCO
TabIndex
GotFocus e LostFocus
SetFocus
Mnemnico
75
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
76
Selecionando Itens
4.1 O FOCO
Foco o termo usado para descrever o objeto que esta em destaque
no momento. O objeto que esta sendo usado pelo usurio. Um objeto pode
perder ou ganhar o foco. Quando estamos manipulando-o ele ganha o foco, se
apertamos a tecla TAB ou clicarmos com o mouse em outro objeto o foco
transferido para outro objeto, ou seja, um ganha o foco e outro perde o foco.
A seqncia que a tecla TAB usa para dar foco aos objetos no
formulrio a ordem que eles foram inseridos no formulrio. Se voc inseri um
boto de comando e depois insere uma caixa de texto, ento quando
executarmos o programa o primeiro a receber o foco ser o boto de
comando. Quando apertar a tecla TAB o foco ser ento transferido para a
caixa de texto. Podemos tambm passar o foco para um determinado objeto
usando o mouse.
77
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
4.1.2
A Tecla Enter
78
Selecionando Itens
propriedade
KeyPreview
do
formulrio
para
79
Estewww.megacursos.com.br
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
Uma vez feito isto, precisamos agora criar o evento de
teclado para o formulario. Entre na janela de codificao
e chame o evento KeyPress do Form. Repetindo: Do Form!
Selecionando Itens
NomeDoObjeto: Um objeto Form que representa um formulrio, ou um
objeto Control que representa um controle no formulrio ou folha de dados
ativo
Use o mtodo SetFocus quando voc quiser que um determinado
campo ou controle tenha o foco, para que toda a entrada do usurio seja
direcionada para esse objeto. De modo a ler algumas das propriedades de um
controle, voc precisa assegurar que o controle tenha o foco. Algumas
propriedades s podem ser definidas quando o controle no tem o foco. Por
exemplo, voc no pode definir as propriedades Visible ou Locked de um
controle como False quando esse controle tem o foco.
Voc no pode mover o foco para um controle se sua propriedade
Enabled estiver definida como False. Voc precisa definir a propriedade
Enabled de um controle como True antes de poder mover o foco para esse
controle. Voc pode, porm, mover o foco para um controle se sua
propriedade Locked estiver definida como True.
Estewww.megacursos.com.br
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
tambm pode reverter ou alterar as condies que voc define no
procedimento de evento GotFocus do objeto. Outros usos para os
procedimentos de evento LostFocus e GotFocus so ativar, desativar, ocultar e
exibir outros objetos.
82
Selecionando Itens
Label 2:
Caption:Cargo
Label 3:
Caption:
Nome
do
Cnjuge
Enabled: False
Name: lblNomeConjuge
Frame 1:
Caption:Estado Civil
Frame 2:
Caption: Setor
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
o Visual Basic perguntar se voc esta criando um array de
controle, e pode responder que sim. Fazendo isto, criamos
uma matriz de nome optEstadoCivil com 3 elementos, sendo
que o elemento 1 representa a opo casado, elemento 2
representa opo Solteiro e elemento 3 opo Viuvo.
A ordem de tabulao a seqncia dos objetos dispostos
no formulrio. Os dois boto de comando deve ter o TabStop
= False, pois no sero includos na tabulao.
A caixa de texto txtNomeConjuge
somente poder ser habilitada se
funcionrio for casado. Para isto a
para o objeto optEstadoCivil deve ser
esta desabilitada, e
o estado civil do
seguinte codificao
feito:
84
Selecionando Itens
85
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
Sempre que possvel use as mesmas teclas de acesso em todo seu
programa. Se numa janela voc tem o boto Cancelar com o mnemnico na
letra n, ento sempre que este boto aparecer em outras janelas tente repetir
a tecla de acesso usada.
Outra dica: No use tecla de acesso para opes perigosas, como por
exemplo um boto Apaga Tudo. Se colocarmos uma tecla de acesso ALT+P
nele corremos o risco de do usurio apertar esta combinao por engano e
limpar tudo. Estas opes delicadas sempre bom obrigar o usurio a usar o
mouse ou a tecla TAB para ele ter certeza do que esta fazendo.
Usando o exemplo
acesso nos objetos:
anterior,
vamos
colocar
teclas
de
86
5 CONTROLES ESPECIAIS
MaskEdBox
CommonDialog
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
5.1
MASKEDBOX
88
Selecionando Itens
Format : Determina o formato que os dados sero exibidos. Seque os
mesmos padres estabelecidos para a funo Format (veja no captulo
Funes Auxiliares)
Use a propriedade Format para exibir dados em um formato
consistente, ou seja, os dados sero exibidos neste formato, mesmo que o
usurio digite os dados diferentemente do formato. Por exemplo, se voc
definir a propriedade Format para dd/mmm/yyyy, todas as datas digitadas
sero exibidas no formato 18/Set/1995. Se o usurio digitar a data como
18/09/95 (ou qualquer outro formato de data vlido), o Visual Basic converter
a exibio para o formato estabelecido, que dia / ms-por-extenso-abreviado
/ ano-com-4-digitos.
A propriedade Format afeta apenas a maneira como um valor exibido
e no como ele armazenado. Da mesma forma, um formato de exibio no
aplicado at que o usurio termine a digitao e o controle perca o foco.
Nada exibido no campo para sugerir ou controlar o formato no qual
os dados so inseridos.
Se voc precisar controlar a maneira como os dados so digitados, use uma
mscara de entrada alm de ou ao invs de um formato de exibio de dados.
Se voc quiser que os dados sejam exibidos exatamente como foram
inseridos, no defina a propriedade Format.
* FormattedText : Retorna o texto digitado, incluindo os caracteres
que compem a mscara.
Mask : Mscara que moldar o controle.
O Visual Basic fornece duas propriedades que produzem resultados
parecidos: a propriedade Format e o Mask.
Use a propriedade Mask para exibir caracteres de exibio literais no
campo com espaos em branco a serem preenchidos. Por exemplo, se todos
os nmeros de telefones que inserir em um campo tiverem o mesmo formato,
voc poder criar uma mscara de entrada:
(###) ###-#### (___) ___ -____ (062) 621-3862
Uma mscara de entrada garante que os dados se ajustem ao formato
definido e voc poder especificar os tipos de valores que podero ser
inseridos em cada espao em branco. Por exemplo, a mscara de entrada
anterior solicita que todas as entradas contenham exatamente os dgitos
necessrios para completar um cdigo de rea e nmero de telefone, e que
somente dgitos possam ser inseridos em cada espao em branco.
Voc pode definir uma mscara de entrada usando os seguintes
caracteres.
89
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
0
9
#
L
?
A
a
&
C
, . : ; - /
<
>
\
90
Selecionando Itens
e 3 labels:
91
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
5.2 COMMONDIALOG
O Visual Basic traz algumas caixas de dilogos prontas para Abrir
arquivo, Salvar, Imprimir, escolher Cor, ou escolher fontes de letra. Sua
utilizao simples e basta inserirmos o objeto CommonDialog no formulrio
para ativarmos os dilogos. Na codificao do programa usamos a
propriedade Action para o Visual Basic abrir o dilogo pretendido:
* Action : Determina o tipo de dilogo que ser exibido:
0
Nenhum dilogo.
1
Mostra caixa de dilogo Abrir Arquivo
2
Mostra caixa de dilogo Salvar Arquivo
3
Mostra caixa de dilogo Escolher Cor
4
Mostra caixa de dilogo Escolher Fonte de Letra
5
Mostra caixa de dilogo de Impresso.
6
Executa o WINHELP.EXE.
As principais propriedades deste objeto podem ser acessadas
selecionando (Custom) ou clicando no boto direito do mouse e selecionando
Propriedades no menu:
92
Selecionando Itens
93
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
94
Selecionando Itens
Estewww.megacursos.com.br
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
Selecionando Itens
NomeDoObjeto.ShowOpen
NomeDoObjeto.ShowSave
arquivo.
arquivo.
NomeDoObjeto.ShowPrinter
impresso.
janela
com
opes
de
Nomeie os objetos:
Tipo de Objeto
Label
Command1
Command2
CommonDialog
Exibe
Name
LblTeste
CmdCorLetra
cmdFonte
Dialogo
97
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
98
Selecionando Itens
6 MENUS
Criando Menus
Menus Instantneos
99
Estewww.megacursos.com.br
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
100
Selecionando Itens
6.1 MENUS
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
Caption : Nesta propriedade definimos o titulo do item que ir
aparecer no menu. Nesta propriedade prefixamos um letra com o smbolo &
para que o Visual Basic destaque a letra com sublinhado. Se for um item da
barra de menus, ao teclarmos ALT e a letra destacada, o menu desse item
ser aberto automaticamente. Se for um item de uma menu j aberto, basta
acionarmos somente a letra destacada para executarmos a funo vinculada
ao mesmo.
Name : Usamos esta propriedade para definirmos o identificador para
o item. Nomeamos cada item de um menu para podemos manipul-los atravs
de codificaa. Para menus usamos abreviao mnu
Index : Permite criar uma matriz para identificar os itens do menu.
Para que a matriz seja estabelecida o name deve ser igual para os que vo
compor a matriz.
ShortCut : Determinamos uma combinao de tecla para que o menu
seja acessado de forma mais rpida. Quando definimos tecla de atalho para
um item do menu, a rotina anexada chamada independente do local onde o
foco esteja.
WindowList : Quando esta propriedade esta habilitada, numa
aplicao com vrias janelas, o Visual Basic cria uma lista das ultimas janelas
que foram acessadas.
Checked : Sempre que o usurio clica no item que possui esta
propriedade habitada para True o Visual Basic coloca um sinal de marcado 9
ao lado do nome. Se clicar novamente esta marca retirada. Usamos esta
propriedade quando queremos mostrar para o usurio o estado Ligado ou
Desligado de algum item do menu.
Enabled: Habilita ou no um item do menu. Quando esta desabilitada
o Visual Basic coloca o texto do Caption acinzentado.
Visible : Quando necessitamos que um determinado item do menu
exista mas que fique invisvel para o usurio at que determinada condio
seja estabelecida, usamos esta propriedade.
Usamos os botes de setas para Baixo de para Cima para movermos
um item de lugar depois de criado. O boto seta para Direita transforma o item
selecionado em submenu item imediatamente acima. O boto seta para
esquerda volta o item um nvel.
O boto Next o default, ou seja, ele acionado sempre que
digitamos ENTER. Ele passa para o prximo item de menu a ser digitado ou na
seqncia.
Insert usado para inserir um item de menu entre outros j criados e
Delete apaga o item selecionado.
102
Selecionando Itens
Num projeto novo vamos criar um menu para um programa de
controle de estoque. Vamos primeiramente definir as opes
mestre que vo ficar no topo do menu.
103
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
104
Selecionando Itens
105
Estewww.megacursos.com.br
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
106
Selecionando Itens
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
Shift : retorna um nmero inteiro que informa qual tecla estava
pressionada no momento em que algum boto do mouse tambm foi
pressionado.
1
SHIFT pressionado.
vbShiftMask
2
CTRL pressionado.
vbCtrlMask
4
ALT pressionado
vbAltMask
X : Coordenada para linha
Y : Coordenada para Coluna
Na
aplicao
anterior
coloque
no
formulrio
um
CommandButton e crie um evento MouseUp para ele com a
seguinte codificao:
108
Selecionando Itens
7 VARIVEIS E MATRIZES
Numrica
Texto
Data
Byte
Boolean
Object
Variant
Matrizes
109
Estewww.megacursos.com.br
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
110
Variveis e Matrizes
Estewww.megacursos.com.br
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
O comando DIM usado para declararmos para o programa a
existncia de uma varivel e o tipo que ela .
Este comando obrigatrio e podemos declarar as variveis no
momento em que estamos necessitando delas, j em uso. Exemplo:
Function CalculaFormula()
x = 10
y = 13
CalculaFormula = x*y+30
End Function
Este exemplo bem simples somente para mostrar que usamos duas
varivels chamadas x e y e no as declaramos. Precisamos delas e usamos.
Caso fosse usar o comando Dim, esta mesma funo ficaria assim:
Function CalculaFormula()
Dim x As Integer
Dim y As Integer
x = 10
y = 13
CalculaFormula = x*y+30
End Function
A expresso Integer significa tipo de varivel numrica que poder
aceitar somente nmeros inteiros. Veremos melhor esses tipos adiante.
Este mtodo extremamente til, pois imagine um programa onde
existe uma imensa quantidade de variveis. Se todas foram previamente
declaradas saberemos de antemo os nomes dela e para que servem.
Podemos forar o Visual Basic a aceitar em nosso programa somente
variveis que foram declaradas. Para tanto temos que acessar o TOOLS no
menu principal, opo OPTIONS:
112
Variveis e Matrizes
No menu options, janela
Environment, habilite a
opo
Require
Variable Declaration
(Requer
Varivel
Declarada).
Assim
sempre que usar uma
varivel que no foi
declarada
pelo
comando Dim e no tem
seu tipo definido o
Visual
Basic
apresentar uma janela
de alerta. Faa isto
agora!
Usando isto, o Visual Basic ir exigir a declarao das variveis, e no
corremos o risco de, quando digitarmos o nome de alguma varivel errada, ele
aceitar. Exemplo: Criamos uma varivel de nome: ClienteCadastrado. E em
algum canto de nossa codificao digitamos: ClienteCadastado. Faltou a letra
r. Se a opo Require Variable Declaration estiver habilitada o Visual Basic
nos avisar que este nome no existe como varivel. Caso contrrio, o Visual
Basic ir imagin-la como uma nova varivel e aceitar o erro. No corra risco!
Descrio
Abrangncia
Integer
Long
Byte
Single
Numrico Inteiro
Numrico Inteiro
Numrico Inteiro
Numrico real
Double
Numrico real
Currency
-32.768 a 32.767
-2.147.483.648 a 2.147.483.648
0 a 255
-3,402823E38 a -1,401298E-45
1,401298E-45 a 3,402823E38
-1,79769313486232E308 a 4,94065645841247E324
4,94065645841247E-324 a
1,79769313486232E308
-922.337.203.685.477,5808 a
922.337.203.685.477,5807
2.147.483.648 de caracteres nos sistemas 32
bits
65.536 de caracteres nos sistemas 16 bits
entre 01/01/100 a 31/12/9999
True (verdadeiro) False (falso)
String
Date
Boolean
Data e Hora
113
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
Object
Variant
Contm um objeto
Pode ser numrico, string, objeto ou valor nulo.
Variveis e Matrizes
Se usssemos neste exemplo 12 & 13 resultaria em 1213 apesar da
expresso 13 ser numrica.
Quando criamos uma varivel do tipo String podemos delimitar
previamente o tamanho que ela ter. Veja a sintaxe:
Dim NomeEscola as String * 30
Criamos uma varivel de nome NomeEscola do tipo String (texto) e
que ter no mximo 30 caracteres. Se colocarmos mais que isto em seu
contedo o excedente ser ignorado. Se colocarmos menos que isto ser
preenchido com espaos em branco.
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
a - 3 = #12/07/96# ( uma data menos um valor numrico subtrai a
quantidade de dias na data.
7.1.9 Null
Quando o contedo da varivel um dado invlido ela retorna a
palavra-chave Null.
Variveis e Matrizes
NomeTeste = Fechar
End Sub
Private Sub Command2_Click()
Command2.Caption = NomeTeste
End Sub
Repare, a varivel NomeTeste foi criada dentro da rotina Private Sub
Command1 e na outra rotina Private Sub Command2 fazemos referencia a ela.
Como ela foi criada dentro da Private Sub Command1 ela tem validade
somente l. Este exemplo nosso retornar um erro, pois NomeTeste no existe
para Private Sub Command2.
Entretanto, se queremos que uma varivel tenha uma abrangncia em
todas as rotinas criadas dentro do formulrio, ento na janela de cdigo do
formulrio na parte superior mude o Object para General e o Proc para
declarations). As variveis que forem criadas ali valer para todas as rotinas
criadas para o formulrio e seus objetos anexados a ele.
Exemplo:
Option Explicit
Dim teste As String
Private Sub Command1_Click()
teste = "Testando a Variavel"
Print teste
End Sub
Veja que a varivel teste foi criada fora da rotina Private Sub, mas
possui abrangncia dentro dela.
Se criarmos um outro formulrio e pedirmos para imprimir a varivel
teste ir ocasionar um erro, pois a validade desta varivel somente dentro do
formulrio em que ela foi criada.
Caso precisamos de uma varivel de carter publico, que tenha
validade Global, em todos os formulrios e rotinas de nossa aplicao, ser
necessrio inserir um mdulo (Menu Insert opo Module) e dentro dele criar a
varivel com o comando PUBLIC no lugar de DIM. Veja exemplo:
Public Teste as String
117
Estewww.megacursos.com.br
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
Menu
Project
Janela de
codificao do
mdulo criado
Resumindo:
Veja ento as formas de se declarar uma varivel:
Varivel pblica todo o programa: podemos declarar uma varivel
pblica, especificando-a com o comando Public na seo
Declarations de qualquer mdulo.
Varivel pblica ao mdulo: atravs do comando de declarao
Dim na seo Declarations do mdulo desejado, especificamos
que uma varivel ser pblica apenas ao mdulo onde fora
declarada.
varivel local rotina (Sub ou Function): declarando uma varivel
com o comando Dim dentro de qualquer procedimento Sub ou
Function a mesma ser reconhecida apenas pelo procedimento.
Variveis e Matrizes
Foi
criado
uma
varivel de nome Teste,
e seu contedo
Modelo Informtica.
Assim, sempre que
fizermos referencia a
Teste ir aparecer o
valor contido nela.
Nesta codificao
do segundo boto
apenas mandamos
inserir o contedo
da varivel Teste
para
o
Label
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
Rode
o
programa
e
aperte
o
segundo
boto
cmdSegundoTeste e veja o que acontece: A mensagem de
erro que aparecia antes no aparece mais, pois agora a
varivel abrange esta rotina tambm.
Mas no existe nenhum contedo para a varivel Teste at
o
momento
em
que
o
boto
cmdTesteVarivel
seja
pressionado. A varivel Teste ter um contedo somente
quando o boto cmdTesteVarivel for pressionado. At
ento, a varivel existe mas seu contedo vazio.
120
Variveis e Matrizes
Para entender melhor,
cmdSegundoTeste para:
mude
codificao
do
boto
121
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
7.3 MATRIZES
Nas matrizes podemos armazenar vrios dados (seja texto, nmeros
ou datas) em uma nica varivel. O que diferencia essencialmente uma matriz
de uma varivel que a primeira possui nveis dentro de si, e em cada nvel
podemos armazenar dados. Veja o exemplo de uma declarao e inicializao
de uma matriz:
Dim NomeCliente(3) as String
NomeCliente(0) = Fernando Henrique
NomeCliente(1) = Fernando Collor
NomeCliente(2) = Jos Sarney
Criamos um matriz de nome NomeCliente e definimos como sendo
uma String. Entretanto, definimos tambm que essa matriz ter 3 nveis
somente. Em cada nvel podemos colocar um elemento (um contedo) dentro
dele.
Todos os elementos da matriz precisam ser do mesmo tipo
estabelecido no comando Dim. Porm, se declararmos um matriz do tipo
Variant, cada elemento poder ser de um tipo de dado diferente.
Para acessarmos um determinado contedo temos que especificar o
nmero que acompanha o nome da matriz. Chamamos esses nmeros de
ndice, e so estes ndices que localiza os elementos dentro da matriz.
Exemplo: Se desejamos imprimir a matriz que contm o nome Jos Sarney
temos que digitar:
Print NomeCliente(2)
Se digitar somente NomeCliente o Visual Basic no ir retornar um
erro em tempo de execuo:
Variveis e Matrizes
123
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
Option Base 1
Dim Contador(3,2) as String.
Significa que temos um matriz de nome Contador, possui 3 elementos
e cada elemento possui 2 elementos. Ou seja, no total, essa matriz ter 6
elementos. Veja como ficaria:
Contador(1,1) = Janeiro
Contador(2,1) = Fevereiro
Contador(3,1) = Maro
Contador(1,2) = Venda Ruim
Contador(2,2) = Venda Regular
Contador(3,2) = Venda Boa
Veja como ficaria a representao grfica dessa matriz
Coluna 1
Coluna 2
Linha 1
Janeiro
(1,1)
Venda Ruim
(1,2)
Linha 2
Fevereiro
(2,1)
Venda Regular
(2,2)
Linha 3
Maro
(3,1)
Venda Boa
(3,2)
Variveis e Matrizes
Usamos o comando ReDim para fazer esse Redimensionamento da
matriz. Exemplo: Se precisarmos incluir mais 1 elemento na matriz
NomeCliente usariamos o comando:
ReDim NomeCliente(1)
NomeCliente(1) = Joo Figueiredo
Se depois precisarmos colocar mais 2 elementos usariamos:
ReDim NomeCliente(3)
NomeCliente(1) = Joo Figueiredo
NomeCliente(2) = Jos Sarney
NomeCliente(3) = Fernando Collor
Neste exemplo quando redimensionamos pela segunda vez tivemos
que colocar um contedo novamente para o NomeCliente(1) pois o comando
ReDim sempre apaga os dados armazenados anteriormente.
Quando no queremos que isto acontea usamos a clusula Preserve
Juntamento com o ReDim. Assim os contedos anteriores so preservados.
Veja:
ReDim NomeCliente(1)
NomeCliente(1) = Joo Figueiredo
Se depois precisarmos colocar mais 2 elementos usaramos:
ReDim Preserve NomeCliente(3)
NomeCliente(2) = Jos Sarney
NomeCliente(3) = Fernando Collor
125
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
126
Variveis e Matrizes
Por exemplo, vamos colocar dois Labels no formulrio e mudar sua
propriedade Name para lblTestaMatriz. No primeiro o Visual Basic aceitar o
nome sem problemas, no segundo Label quando tentarmos colocar o mesmo
nome j usado anteriormente por outro Label, o Visual Basic avisar que o
nome j existe e pergunta se no queremos usar uma matriz:
Se optarmos pelo sim ele criar uma matriz e renomear o objeto para
lblTestaMatriz(0) e lblTestaMatriz(1). A propriedade index de cada um possuir
os nmeros 0 e 1 respectivamente.
Usando uma matriz o nosso objeto agora ter que ser referenciada
com o seu ndice para podermos saber qual objeto estamos querendo usar:
Se formos fazer alguma codificao para este objeto, teramos que
sempre colocar o ndice correspondente ao objeto que estamos trabalhando.
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
do ndice correspondente ao Objeto clicado. Ou seja, se chamarmos o evento
click atravs do Label1 o nmero do ndice ser 0. Se usarmos o Label2 o
ndice ser 1.
Objetos
Propriedades
Check1
Check2
Check3
Check4
Name
chkNome
chkNome
chkNome
chkNome
Caption
Figueiredo
Jos Sarney
Collor
FHC
128
Variveis e Matrizes
EXERCCIOS PROPOSTOS
1 - Cite trs regra que temos que respeitar na criao de uma varivel:
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
130
8 OPERADORES
Matemtico
Relacional
Lgico
String
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
8.1 OPERADORES
A finalidade bsica dos operadores so para comparar, calcular,
igualar, concatenar... enfim, fazer operaes envolvendo variveis ou campos
de Banco de Dados.
132
Operadores
Descrio
Menor
Maior
Menor ou Igual
Maior ou Igual
Igual
Diferente
Exemplo
3<5
5>3
3 <= 5
5 >= 3
5=5
3 <> 5
133
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
O resultado ser falso. 10 maior que 5. Seria Verdadeira a
comparao, mas como possui o Not, e ele inverte o resultado, o retorno
falso.
Xor: Este operador exige preciso. No admite confuso na
comparao dos relacionamentos. Ou uma coisa ou outra. Nunca as duas.
8 > 10 Xor 8 > 6
Retorna verdadeiro, pois o resultado das duas comparaes foram
diferentes. A primeira falsa e a segunda verdadeira.
8 > 10 Xor 6 > 8
Retorna falso, pois o resultado das duas comparaes foram
semelhantes. A primeira falsa e a segunda tambm.
10 > 8 Xor 8 > 6
Retorna falso, pois o resultado das duas comparaes foram
semelhantes. A primeira verdadeira e a segunda tambm.
Eqv: Abreviatura de Equivalente. Faz uma equivalncia lgica entre
duas expresses.
10 > 8 Eqv 8 > 6
Retorna verdadeiro, pois ambas comparaes so iguais.
8 > 10 Eqv 8 > 6
Retorna falso, pois as comparaes retornam valores diferentes.
Imp: Abreviatura de Implicao (uma coisa implica em outra). O
resultado ser False somente se a primeira comparao for True e a segunda
for False. Nos outros casos o resultado ser sempre True. Este operador o
nico onde a ordem dos operandos fazem diferena.
10 > 8 Imp 6 > 8
Retorna Falso, pois a primeira comparao Verdadeira e a segunda
falsa.
10 > 8 Imp 8 > 6
Retorna Verdadeiro.
8 > 10 Imp 6 > 8
Retorna Verdadeiro.
134
Operadores
Resulta em Lionardo Fonseca Paiva. O operador + tambm pode
ser usado, mas no aconselhado, uma vez que o & possui uma
abrangncia maior, convertendo expresses de outros formatos para o string
para forar a concatenao.
de
texto
para
txtValor,
135
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
136
Operadores
EXERCCIOS PROPOSTOS
1 - Qual a diferena entre o operador / e o operador \ ?
137
9 COMANDOS CONDICIONAIS
E DE LAO
Condicionais
Lao
139
Estewww.megacursos.com.br
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
9.1
COMANDOS CONDICIONAIS
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
ELSEIF Contador = 20
Print Contador igual a 20
ELSE
Print Contador maior que 20
End If
Print Fim do Programa
O programa verifica se o contador menor que 20. Se no for verifica
se ento igual a 20, seno ir imprimir que contador maior que 20.
Veja outro exemplo:
SELECT CASE
Significa Seleo de Casos. Ou seja, colocamos
possibilidades (varios casos) para o Visual Basic e ele escolhe um.
Veja a estrutura do comando:
Opo = 3
Select Case Opo
Case 1
Print Opo 1 acionada
Case 2
142
vrias
143
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
Em um novo formulrio crie uma caixa de texto
digitarmos uma data e um boto como esta abaixo:
para
9.2
144
COMANDOS DE LAO
no
145
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
DO UNTIL <<Condio>> LOOP ( Faa at que)
Executa todos os comandos que existem entre DO UNTIL e o LOOP.
Quando a execuo do programa encontra o comando LOOP, o DO UNTIL
reavaliado e a rotina continua at que a condio estabelecida esteja satisfeita.
Contador = 0
Do Until contador >= 10
Contador = Contador + 1
Print Contador
Loop
Print Fim da execuo
146
Estewww.megacursos.com.br
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
Loop
Print Fim da execuo
Exit For: Fora a sada de um FOR..NEXT, mesmo que o nmero
final no tenha sido alcanado.
Contador = 0
For Contador = 1 to 10
Print A varivel Contador agora vale &Contador
If Contador = 6
Exit For
end if
Next
Print Fim da execuo
expresses de outros formatos para o string para forar a concatenao.
148
EXERCCIOS PROPOSTOS
1 - Cite duas diferenas entre um lao DO WHILE e um lao DO - LOOP
WHILE?
2 - Qual intruo que verifica sua condio antes da execuo das rotinas que
fazem parte do lao?
149
10 FUNES DE AUXILIO
Data e Hora
Converso
String
Matemtica
Entrada de Dados
Identificao
Manipulao de Matriz
151
Estewww.megacursos.com.br
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
10.1 FUNES
Funes nada mais que rotinas prontas para executar determinadas
aes.
Existem no Visual Basic diversos tipos de funes que nos auxiliam na
programao em todos os aspectos. So funes que fazem clculos, funes
que exibem resultados, funes para todos os gostos. Vamos comear a ver
algumas dessas funes e com isto descobriremos o poder que elas exercem
dentro da linguagem e sua utilidade.
Existem funes que precisam de um argumento para executar uma
tarefa, outras somente retorna algum valor sem necessidade do argumento,
como visto nos exemplos abaixo:
10.1.1
Funes matemticas
153
Este www.megacursos.com.br
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
10.1.2
Funes de Converso
Estewww.megacursos.com.br
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
Print CInt(45.40)
Valor Impresso: 45
Print CInt(45.60)
Valor Impresso: 46
CLNG: Converte uma expresso numrica em um nmero inteiro
longo.
VarivelNumrica = CLng(<expresso>)
VarivelNumrica = CLng(<expresso numrica>)
Print Clng(45.40)
Valor Impresso: 45
Print Clng(45.60)
Valor Impresso: 46
A diferena entre a funo CINT e CLNG a abrangncia da prpria
varivel.
CSNG: Converte uma expresso numrica em um nmero de ponto
flutuante de preciso simples.
VarivelNumrica = CSng(<expresso >)
CSTR: Converte uma expresso numrica, data ou outra em uma
string (texto).
VarivelString = CStr(<expresso>)
Print Cstr(452)
Valor Impresso: 452
CVAR: Converte uma expresso de qualquer tipo para o tipo variante.
VarivelVariant = Cvar(<expresso>)
STR: Converte um valor numrico para o tipo String (texto). Valido
somente para argumentos numricos.
VarivelString = Str(<expressoNumrica>)
Print Str(452)
Valor Impresso: 452
STRCONV: Retorna uma string convertida de acordo com o tipo de
converso especificado.
VarivelString = Strconv(<ExpressoString>, <TipoDeConverso>)
Tipos de converso que podemos usar:
vbUpperCase Converte toda a expresso em letras maisculas.
vbLowerCase Converte toda a expresso em letras minsculas.
156
10.1.3
Estewww.megacursos.com.br
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
yyyy
q
m
y
d
w
ww
h
n
s
Ano
Trimestre
Ms
Dia do ano
Dia
Dia da semana
Semana
Hora
Minuto
Segundo
Ms
Dia do ano
Dia
Dia da semana
Semana
Hora
Minuto
Segundo
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
ParteDaData = DatePart(<intervalo>, <expressoData>)
Intervalo pode ser:
yyyy
Ano
q
Trimestre
m
Ms
y
Dia do ano
d
Dia
w
Dia da semana
ww
Semana
h
Hora
n
Minuto
s
Segundo
Dim Data As Date
Data = #8/2/96#
Print DatePart("m", data)
Valor Impresso: 8
DATESERIAL: Retorna uma data para um dia, ms e ano
especificados, ou seja, informe cada item separado que a funo monta a
data.
VariavelData = DateSerial(<ano>, <ms>, <dia>)
Print DateSerial("96","08","02")
Valor Impresso: 02/08/96
DATEVALUE: Retorna a data especificada numa string, ou seja,
converte uma varivel String para o tipo Data.
VarivelData = DateValue(<VarivelStringDeData>)
Print DateValue("02/08/96")
Valor Impresso: 02/08/96
DAY: Retorna o dia do ms referente a uma data.
VarivelNumrica = Day(<expressoData>)
Print Day("02/08/96")
Valor Impresso: 2
HOUR: Retorna a hora de uma expresso de data e hora.
VarivelNumrica = Hour(<ExpressoHora>)
Print Hour("12:34:12")
Valor Impresso: 12
Print Hour(now)
Valor Impresso: 15
160
161
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
Para criar um programa que faa calculos de data
bastante simples se usarmos as funes acima de forma
correta.
Abra um novo projeto e desenvolva um formulrio como no
modelo:
a seguinte codificao:
162
10.1.4
Funes de String
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
SubStringAPesquisar : Expresso de seqncia de caracteres
procurada.
MtodoDeComparao : Especifica o tipo comparao de seqncias
de caracteres. Este argumento pode ser omitido, pode ser 0 ou 1. Especifique
0 (padro) para realizar uma comparao binria. Especifique 1 para realizar
uma comparao textual que desconsidere maisculas/minsculas. Se este
argumento for omitido, a configurao de Option Compare determinar o tipo
de comparao.
Print InStr(8,"Lionardo Fonseca", "FO",1)
Valor Impresso: 10
A partir do 8 caractere procure na expresso Lionardo Fonseca em
que posio comea a expresso FO, e ignore diferenciao
maisculas/minsculas.
Print InStr(8,"Lionardo Fonseca", "FO",0)
Valor Impresso: 0 (no encontrado).
LCASE: Converte uma expresso string para minsculas.
VarivelString = Lcase (<stringAConverter>)
Print Lcase(Editora Terra)
Valor Impresso: editora terra
LEFT: Retorna uma quantidade de caracteres que se encontra da
esquerda para a direita.
VarivelString = Left(<string>, <QuantidadeDeCaracteres>)
Print Left("Lionardo",4)
Valor Impresso: Lion
LEN: Retorna o nmero de caracteres de uma expresso String ou
nmero de bytes requerido para armazenar uma varivel.
VarivelNumrica = Len (ExpressoCaractere>)
Print Len(Lionardo)
Valor Impresso: 8
LTRIM: Remove os espaos em branco esquerda de uma String.
VarivelString = Ltrim (<ExpressoString>)
MID: Retorna uma Substring de uma String, ou seja, retorna um
nmero especificado de caracteres de uma seqncia de caracteres.
SubString=Mid(<string>,<posioInicial>[,
<quantidadeDeCaracteres>])
164
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
Valores de retorno da funo: -1 quando a primeira String for menor
que a Segunda, 0 quando forem iguais e 1 quando a primeira String for maior
que a segunda.
STRING: Repete um determinado caractere a quantidade de vezes
estabelecido na funo.
String = String (<QuantidadeDeCaracteres>, <caracteres>)
Print String(30,"-")
Valor Impresso: -----------------------------TRIM: Remove os espaos esquerda e direita de uma string.
VarivelString = Trim(<String>)
UCASE: Converte uma expresso String para maisculas.
VarivelString = Ucase (<string>)
Print Ucase(Editora Terra)
Valor Impresso: EDITORA TERRA
10.1.5
10.1.6
Funes Lgicas
IIF: Analisa uma expresso lgica, e retorna valores para quando for
falso ou verdadeiro.
ExpressoDeRetorno = IIF (<ExpressoLgica>,
<ExpressoParaVerdadeiro>, <ExpressoParaFalso>)
Print iif(10 > 2,10 maior que 2, 2 maior que 10)
Valor Impresso: 10 maior que 2
Print iif(10= 5,Igual, Diferente)
Valor Impresso: Diferente
SWITCH: Avalia uma lista de expresses e retorna o valor associado
quela primeiro avaliada como verdadeira.
Switch(Expr-1, Valor-1[, Expr-2, Valor-2 , Expr-etc, Valor-etc])
Expr : Expresso variant que voc quer avaliar.
Valor : Valor ou expresso que retornado se a expresso
correspondente for True.
A lista de argumentos da funo Switch consiste de pares de
expresses e valores. As expresses so avaliadas medida que aparecem
167
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
na lista da esquerda para a direita e retornado o valor associado primeira
expresso para avaliar True. Se as partes no forem corretamente pareadas,
ocorre um erro em tempo de execuo. Por exemplo, se expr-1 for True,
Switch retornar valor-1. Se expr-1 for False, mas expr-2 for True, Switch
retornar valor-2, e assim por diante.
Switch retornar um valor Null se nenhuma das expresses for True.
Switch avalia todas as expresses, mesmo que retorne apenas uma
delas. Por este motivo, voc deve ficar atento para efeitos colaterais
indesejveis. Por exemplo, se a avaliao de qualquer expresso resultar num
erro de diviso por zero, ocorrer um erro.
A=2
B=2
C=2
Print Switch(A<2,"Letra A < 2", B=2,"Letra B = 2", C<3, "Letra C < 3")
Valor Impresso: Letra B = 2
A segunda expresso na lista foi impresso, pois foi a primeira a ter
uma condio verdadeira. Note que o ultimo valor (C<3) tambm verdadeiro,
mas como a funo Switch encerra sua execuo quando encontra a primeira
ocorrncia verdadeira, ele foi ignorado.
A=2
B=3
C=2
Print Switch(A<2,"Letra A < 2", B=2,"Letra B = 2", C<3, "Letra C < 3")
Valor Impresso: Letra C < 3
10.1.7
Funes de Disco
168
vbNormal
vbReadOnly
vbHidden
vbSystem
vbDirectory
vbArchive
Normal.
Somente Leitura.
Oculto.
Arquivo de sistema
Diretrio ou pasta.
O arquivo foi modificado desde o ltimo
backup.
Print GetAttr("C:\WINDOWS\SYSTEM.INI")
Valor Impresso: 32
169
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
10.1.8
Funes de Teste
vlido.
VarivelBoolean = IsObject(<Expresso>)
VARTYPE: Retorna o tipo de varivel especificada como argumento:
VarivelNumrica = VarType(<Varivel>)
Retorna os valores abaixo:
170
10.1.9
Funes de Escolha
171
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
ndice : Expresso numrica ou campo que resulta num valor entre 1 e
o nmero de opes disponveis.
Escolha : Expresso Variant que contm uma das possveis opes.
Choose retorna um valor da lista de opes com base no valor de
ndice. Se ndice for 1, Choose retorna a primeira opo da lista; se ndice for
2, retorna a segunda opo e assim por diante.
Choose pode ser usado para pesquisar um valor numa lista de
possibilidades. Por exemplo, se ndice avalia para 3 e a opo-1 = "um",
opo-2 = "dois" e opo-3 = "trs", Choose retorna "trs". Esta capacidade
particularmente til se ndice representar o valor num grupo de opes.
Se ndice no for um nmero inteiro, ele ser arredondado para o
nmero inteiro mais prximo antes de ser avaliado.
Print Choose(2,"Apostilas","CD-ROM","Livros","Servios Grficos")
Valor Impresso: CD-ROM
INPUTBOX: Exibe um aviso numa caixa de dilogo, aguarda at que o
usurio insira texto ou escolha um boto e retorna o contedo da caixa de
texto.
Varivel=Inputbox(<expresso>,<barraDeTtulo>,<escolhaDefault>)
EmpressoPrompt : Expresso de seqncia de caracteres exibida
como a mensagem numa caixa de dilogo. O tamanho mximo de prompt de
aproximadamente 1024 caracteres, dependendo da largura dos caracteres
usados.
BarraDeTtulo : Expresso de seqncia de caracteres exibida na
barra de ttulos da caixa de dilogo. Se voc omitir este argumento, o nome do
aplicativo ser includo na barra de ttulos.
EscolhaDefault : Expresso de seqncia de caracteres exibida na
caixa de texto como a resposta padro se nenhuma outra entrada for
fornecida. Se voc omitir EscolhaDefault, a caixa de texto ser exibida vazia.
Se o usurio escolher "OK" ou pressionar ENTER, a funo InputBox
retorna o contedo da caixa de texto, qualquer que seja ele. Se o usurio
escolher "Cancelar", a funo retorna uma seqncia de caracteres de
tamanho zero ("").
Observao : Se quiser especificar mais do que o primeiro argumento
nomeado, voc dever usar InputBox em uma expresso. Se quiser omitir
alguns argumentos posicionais, voc dever incluir o delimitador de vrgula
correspondente.
172
Constante
Valor
Descrio
vbOKOnly
VbOKCancel
VbAbortRetryIgnore
VbYesNoCancel
VbYesNo
VbRetryCancel
VbCritical
0
1
2
3
4
5
16
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
VbQuestion
VbExclamation
VbInformation
VbDefaultButton1
VbDefaultButton2
VbDefaultButton3
VbApplicationModal
32
48
64
0
256
512
0
VbSystemModal
4096
Constante
Valor de Retorno
vbOK
vbCancel
vbAbort
vbRetry
vbIgnore
vbYes
vbNo
1
2
3
4
5
6
7
174
Boto escolhido
"OK"
"Cancelar"
"Anular"
"Repetir"
"Ignorar"
"Sim"
"No"
("Deseja
Continuar?",VbYesNoCancel,
"Ativar
Bomba
175
Estewww.megacursos.com.br
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
176
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
Valor Impresso: 12345,3
Perceba que no podemos colocar uma formatao menor que os
nmeros que sero impressos, pois seno a formatao no ir alcanar toda
a extenso dos nmeros.
O smbolo # substitudo por nmeros quando existir nmero para
ser substitudo. Note que o nmero decimal .3 e apesar de termos usado
uma formatao para casas decimais com dois smbolos ##, no apareceu
as duas casas decimais. Se quisermos forar o aparecimento de zeros quando
no tiver nmero para ser impresso, usados 0 no lugar de #. Veja:
Print Format(12345.3,##,###.00)
Valor Impresso: 12.345,30
Print Format(12345,##,###.00)
Valor Impresso: 12.345,00
Isto vale tambm para formatao de nmeros sem casas decimais:
Print Format(45,0000)
Valor Impresso: 0045
Se quisermos uma formatao diferente para nmeros negativos,
basta colocar essa formatao aps o ponto-e-virgula.
Print Format(12345,##,###.00; (-)##,###.00)
Valor Impresso: 12.345,00
Print Format(-12345,##,###.00; (-)##,###.00)
Valor Impresso: (-)12.345,00
Veja abaixo os caracteres que podem ser usados na formatao de
valores numricos:
0
Exibe um dgito ou um zero. Se a expresso tiver um dgito na
posio em que o 0 aparece na seqncia de caracteres de formato, ele ser
exibido; caso contrrio, exibido um zero nessa posio.
Se o nmero possui um nmero de dgitos inferior ao de zeros (em
qualquer lado da casa decimal) na expresso de formato, exibe zeros
esquerda ou direita. Se o nmero tiver mais dgitos direita do separador
decimal do que zeros direita do separador decimal na expresso de formato,
arredonda o nmero para tantas casas decimais quantos forem os zeros
existentes. Se o nmero tiver mais dgitos esquerda do separador decimal do
que zeros esquerda do separador decimal na expresso de formato, exibe os
dgitos a mais sem modificaes.
#
Exibe um dgito ou nada. Se a expresso tiver um dgito na
posio em que o smbolo # aparece na seqncia de caracteres de formato,
ele ser exibido; caso contrrio, nada ser exibido nessa posio.
Este smbolo funciona como o espao reservado para o dgito 0, mas
os zeros esquerda e direita no so exibidos se o nmero tiver a mesma
178
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
de expoentes negativos. Use E+ ou e+ para incluir um sinal de subtrao ao
lado de expoentes negativos e um sinal de adio (+) ao lado de expoentes
positivos.
- + $ ( ) space Exibe um caractere literal
Para exibir uma caractere diferente dos listados, preceda-o com uma
barra invertida (\) ou coloque-o entre aspas (" ").
\
formato
Muitos caracteres da expresso de formato tm um significado
especial e no podem ser exibidos como caracteres literais a menos que
sejam precedidos por uma barra invertida. A barra propriamente no exibida.
Sua utilizao equivale a colocar o caractere seguinte entre aspas. Para exibir
uma barra invertida, use duas barras invertidas (\\).
Exemplos de caracteres que no podem ser exibidos como caracteres
literais so caracteres de formatao de data e hora (a, c, d, h, m, n, p, q, s, t,
w, y e /:), caracteres de formatao numrica (#, 0, %, E, e, vrgula e ponto) e
os caracteres de formatao de seqncias de caracteres (@, &, <, >, e !).
"ABC" Exibe a seqncia de caracteres que est entre aspas.
Para incluir uma seqncia de caracteres em Format a partir do
cdigo, voc deve usar Chr(34) para delimitar o texto (34 cdigo de caractere
para aspas).
180
181
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
182
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
w
Exibe o dia da semana como um nmero (1 para domingo at
7 para sbado).
ww
Exibe a semana do ano como um nmero.
Print Format("01/08/96","ww")
Valor Impresso: 31
m
Exibe o ms como um nmero sem zeros esquerda. Se m
vier imediatamente depois de h ou hh, exibido o minuto em lugar do ms.
Print Format("01/08/96","m")
Valor Impresso: 8
mm
Exibe o ms como um nmero com zeros esquerda. Se m
vier imediatamente depois de h ou hh, exibido o minuto em lugar do ms.
Print Format("01/08/96","mm")
Valor Impresso: 08
mmm Exibe o ms como uma abreviado em trs letras.
Print Format("01/08/96","mmm")
Valor Impresso: Ago
mmmm Exibe o ms como um nome completo.
Print Format("01/08/96","mmmm")
Valor Impresso: Agosto
q
Exibe o trimestre do ano como um nmero.
Print Format("01/08/96","q")
Valor Impresso: 3
y
Exibe o dia do ano como um nmero.
Print Format("01/08/96","y")
Valor Impresso: 214
yy
Exibe o ano como um nmero de dois dgitos.
Print Format("01/08/96","yy")
Valor Impresso: 96
yyyy Exibe o ano como um nmero de quatro dgitos.
Print Format("01/08/96","yy")
Valor Impresso: 1996
h
184
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
Valor Impresso: Quinta-feira, 1 de Agosto de 1996
Medium Date : Exibe uma data usando o formato mdio de data
apropriado para a verso de idioma do aplicativo host.
Print Format("01/08/96","Medium Date")
Valor Impresso: 01-Ago-96
Short Date : Exibe uma data usando o formato abreviado de data de
seu sistema.
Print Format("01/08/96","Short Date")
Valor Impresso: 01/08/96
Long Time : Exibe uma hora usando o formato por extenso de hora de
seu sistema: inclui horas, minutos, segundos.
Print Format("09:24:11","Long Time")
Valor Impresso: 09:24:11
Medium Time : Exibe uma hora no formato 12 horas usando horas e
minutos e a designao AM/PM.
Print Format("09:24:11","Medium Time")
Valor Impresso: 09:24 AM
Short Time : Exibe uma hora usando o formato 24 horas.
Print Format("09:24:11","Short Time")
Valor Impresso: 09:24
186
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
&
Exibe um caractere ou nada. Se a seqncia de caracteres
tem um caractere na posio em que & aparece, ele ser exibido; caso
contrrio, nada ser exibido. Os espaos reservados so preenchidos da
direita para a esquerda a menos que exista um caractere ! na seqncia de
caracteres de formato. Veja abaixo.
!
Fora preenchimento da esquerda para a direita dos espaos
reservados. O preenchimento padro feito da direita para a esquerda.
188
<
>
EXERCCIOS PROPOSTOS
1 - Mostre a diferena entre as funes matemticas FIX e INT:
2 - Para converter uma varivel para o tipo Data usamos qual funo?
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
11 - Considerando que:
A = Editora
B = Grfica
C = Editora
D = IIF(A=B, Igual, Diferente)
E = IIF(A=C, Igual, Diferente)
F = IIF(C=B, Igual, Diferente)
QuaL o contedo das variveis D, E e F?
190
MSGBOX:
Data e Hora:
String:
191
11 CRIAO DO BANCO DE
DADOS
Caracteristicas
Visual Data Manager
ndices
193
Estewww.megacursos.com.br
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
194
11.1.1
Caractersticas
TABELA:
Mercadoria
TABELA:
Fornecedor
TABELA:
Cliente
CAMPO:
Descrio
Quantidade
Valor
CAMPO:
Nome
Endereo
Telefone
CAMPO:
Nome
ValorCompra
DADOS:
Calo de Banho
12
R$ 12,00
DADOS:
Solaris Ind. e Com.
Rua 12, 300 - RJ
(021) 451-7854
DADOS:
Joaquim Pereira
R$ 42,00
195
Estewww.megacursos.com.br
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
Quando estamos na fase de desenvolvimento de um programa que ir
gerenciar um banco de dados, podemos deixar j criado o Banco de Dados
com suas tabelas e campos. Somente os Dados que sero inseridos pelo
usurio na medida que for trabalhando com seu programa.
Para criar um banco de dados o Visual Basic traz uma ferramenta
chamada Visual Data Manager. Ele se encontra no menu ADD-INS.
11.1.2
196
197
Estewww.megacursos.com.br
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
198
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
Integer : Valores de 32.768 a +32.767. Armazenado em variveis tipo
Integer.
Long : 2.147.483.648 a 2.147.483.647 (cerca de 2.1 GB).
Armazenado em variveis tipo Inteiro Long.
Single : 3,402823E38 a 1,401298E45 para nmeros negativos e
1,401298E45 a 3,402823E38. Armazenado em variveis tipo Single.
Double : 1,79769313486232E308 a 4,94065645841247E324 para
valores negativos e 4,94065645841247E324 a 1,79769313486232E308 para
valores positivos. Armazenado em variveis tipo Double.
Escolha para nosso exemplo o tipo Text
Size : Tamanho definido para o campo. Se colocamos 2 para o
campo, poder ser digitado somente 2 caracteres. Esta opo liberada
somente para o tipo Text.
Digite 30
FixedField:Campo Fixo
VariableField: Campo Varivel, que o padro.
AllowZeroLength: Permitir comprimento zero, ou seja, quando esta
opo esta selecionada o campo aceita (""). Se esta opo no tiver habilitada
e o usurio tentar gravar um campo que no tenha nada digitado (como um
daado no-obrigatrio no programa) ocorrer um erro em tempo de execuo.
Required: Quando esta opo esta marcada o campo se torna
obrigatrio, ou seja, necessrio informar valores para o campo, seno ocorre
erro em tempo de execuo.
DefaultValue: Quando temos um campo que no pode ficar vazio,
sempre interessante digitar algo aqui nesta opo, pois os valores que
200
Data Type
Integer
Currency
Text
Size
N/A
N/A
3
Aperte o boto Build The Table para que a tabela seja gravada e
inserida no banco de dados.
201
Este www.megacursos.com.br
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
Data Type
Text
Text
Currency
Size
3
30
N/A
Tabela: Vendas
Field Name
Cdigo
CdCliente
ValorVenda
QuantidadeVendida
Data Type
Text
Text
Currency
Integer
Size
3
3
N/A
N/A
202
11.1.3
Criando indices
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
Para se criar um ndice podemos usar tambm o Visual Data Manager
atravs do Design, onde ser apresentado novamente a estrutura que se criou
da tabela. Use o boto "Add Index" para adicionar indices.
205
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
12 MANIPULAO DO
BANCO DE DADOS
206
207
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
208
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
Coloque tambm 7 botes de comando no formulrio como na. Para
nomea-los use os Captions de cada um prefixado com cmd:
Importante: Coloque a propriedade TabIndex do Boto "cmdIncluir "
como "0" para que ele seja o primeiro a possuir o foco quando entrar na janela.
Para rodar este programa e ver o resultado ser necessrio ligar este
formulrio ao menu mnuMercadoria. Para fazer isto vamos at o menu
localizado no frmEstoque, click no Cadastro para abrir as opes. D dois
clickes na opo Mercadoria que uma janela de codificao ser aberta. Digite:
210
12.1.1
Uma vez que vamos trabalhar com manipulao de dados, temos que
verificar se o Visual Basic est apto para fazer esta manipulao. Os servios
necessrios para executar essas funes esto em uma DLL do Microsoft
DAO 3.5 Object Library. Para que nosso programa leia essa DLL temos que ir
at o menu Project/References e selecionar esta DLL:
211
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
Se este ajuste no for feito e um objeto de banco de dados for
declarado, o Visual Basic gerar um erro. A biblioteca DAO (Data Access
Objects) fornece um conjunto de objetos de programao que precisaremos
usar para gerncia os Bancos de Dados.
Temos que criar agora duas variveis do tipo Banco de Dados e outra
do tipo Tabela. Uma servir para fazer referncia ao nome e caminho do
Banco de Dados como um todo, e a outra ir fazer referncia a uma tabela
especifica.
Onde criar estas variveis?
No nosso exemplo temos que cri-las na seo General da janela de
codificao do formulrio. Variveis criadas ali possuem abrangncia em todo
o formulrio. Se criarmos ela dentro de alguma outra rotina (ou vento) a
abrangncia destas variveis sero somente dentro da prpria rotina.
213
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
12.1.2
Abrindo um indice
12.1.3
12.1.4
Cuidados especiais
Estewww.megacursos.com.br
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
217
Estewww.megacursos.com.br
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
12.1.5
Funes de apoio
218
Estewww.megacursos.com.br
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
Com isto, sempre que precisarmos gravar os dados que o usurio
digitou no formulrio para dentro de seus respectivos campos na tabela
usamos a funo AtualizaCampos.
Repita o processo para criar agora a funo AtualizaFormulrio:
Estewww.megacursos.com.br
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
Perceba que somente se EOF for False que atualizamos o formulrio,
pois caso contrrio, no poderamos atualizar o formulrio pois no haveria
dados a serem atualizados.
O primeiro boto que vamos codificar o incluir. Ele funcionar da
seguinte forma: Quando clicarmos nele as caixas de textos sero limpas e o
mtodo AddNew ser acionado. Este mtodo usado para avisar tabela que
alguns dados sero includos.
Depois de usar o AddNew temos que atualizar os campos, ou seja,
passar tudo que foi digitado nas caixas de texto para seus respectivos campos
dentro da tabela TBMercadoria. Fazendo isto usamos o mtodo Updated para
efetuar a gravao propriamente dita e atualizar a tabela com os novos
campos.
Veja um exemplo:
TBMercadoria.AddNew
TBMercadoria("Cdigo") = 001
TBMercadoria("Descrio") = Cala Jeans
TBMercadoria("Quantidade") = 12
TBMercadoria("Valor") = 100
TBMercadoria.Updated
Esta rotina o padro para incluso de dados.Repare que sempre
inicia com AddNew e termina com Updated Neste exemplo colocamos
expresses string para serem inseridas nos campos, mas poderiamos ter
colocado variveis.
No nosso exemplo vamos colocar as caixas de texto. Ficaria assim:
TBMercadoria.AddNew
TBMercadoria("Cdigo") = txtCdigo
TBMercadoria("Descrio") = txtDescrio
TBMercadoria("Quantidade") = txtQuantidade
TBMercadoria("Valor") = txtValor
TBMercadoria.Updated
Desta forma o que o usurio digitar nas caixas de texto sero includos
dentro dos campos da tabela.
Isto uma forma simplificada de fazer incluso de dados. Mas ns
vamos usar um forma mais complexa:
222
Veja o que foi feito: Sempre que o usurio clicar neste boto o
programa limpa o formulrio para deixar as caixas de texto vazias para serem
preenchidas com novos dados. O Frame habilitado para que as caixas de
texto possam ser manipuladas. Em seguida o foco passado para o caixa de
texto txtCdigo pois a primeira que deve ser digitada pelo usurio
Ainda no aplicamos o mtodo AddNew pois ainda no sabemos se o
usurio vai incluir um cdigo vlido. Primeito o programa tem que analizar o
cdigo que ele digitou, verificar se ele realmente no existe para depois usar o
mtodo AddNew. Fazemos isto no evento LostFocus da Caixa de Texto
txtCdigo.
Neste evento verificamos primeiramente se o boto CmdGravar esta
habilitado. Se estiver porque a incluso foi acionada.
O programa procura o cdigo digitado. Se ele existir sera dado um
aviso ao usuario e o processo de incluso ser cancelado, caso contrrio (ou
seja, se o cdigo no existir dentro da tabela) o mtodo AddNew chamado
a fim de preparar a tabela para receber um novo registro.
223
Estewww.megacursos.com.br
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
Pronto, a janela j esta preparada para receber os dados. Mas agora falta
fazer a codificao para o boto Gravar.
224
225
Este www.megacursos.com.br
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
O boto Prximo ir mostrar na tela o prximo registro existente. Note
que para fazer este movimento usamos a propriedade MoveNext (mova para o
prximo), depois fazermos um teste com a propriedade EOF para verificar se
foi movido para o ultimo registro na tabela. Se estiver no ltimo, dali ele no
pode passar pois no encontrar nada. Encontrando ento o ultimo registro, se
tentar passar dali a propriedade MovePrevious (move para o anterior)
acionado. Depois disto atualizamos o formulrio.
O boto Anterior possui a mesma lgica, mas invertemos as outras
propriedades para fazer agora o teste de inicio de arquivo. Ou seja, se o
usurio estiver no primeiro registro ele no poder voltar um registro, pois
antes do primeiro no existira nada.
Se voc usar MoveNext quando o ltimo registro for o atual, a
propriedade EOF ser configurada para True e no haver registro atual. Se
voc usar MoveNext novamente, um erro ocorrer; EOF permanece True. Se
recordset referir-se a um Recordset tipo table (que o nosso caso), a
movimentao segue o ndice atual. Voc pode definir o ndice atual usando a
propriedade Index. Se voc no configurar o ndice atual, a ordem de registros
retornados ser indefinida.
12.4 ALTERAO
12.5 CONSULTA
Para consulta vamos usar a funo INPUTBOX. Aprendemos a us-la
nos captulos anteriores. Ela solicita ao usurio a digitao de algum dado e
armazena numa determinada varivel.
Ento criamos uma varivel de nome ProcuraCdigo e usamos ela
para receber o que o usurio digitar.
Feito isto, usamos o mtodo Seek para efetuar uma procura dentro da
tabela.
Seek: Localiza o registro de um objeto Recordset tipo table indexado
que satisfaa os critrios especificados para o ndice atual e torna esse
registro o registro atual.
Aps o Seek colocamos um sinal de comparao para determinar o
tipo de procura que este mtodo fara. Podemos usar = ,<, >, <=, >=,
etc
O mtodo Seek pesquisa os campos-chave especificados e localiza o
primeiro registro que satisfaa os critrios especificados na comparao dentro
da chave de ndice. Uma vez encontrado, esse registro torna-se o registro
atual e a propriedade NoMatch definida como False. Se o mtodo Seek
falhar em localizar um registro correspondente, a propriedade NoMatch
configurada como True e o registro atual indefinido.
227
Estewww.megacursos.com.br
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
Se comparao for igual (=), maior ou igual a (>=) ou maior do que (>),
o Seek comea a pesquisa no incio do ndice. Se comparao for maior do
que (<) ou maior ou igual a (<=), o Seek comea a pesquisa no final do ndice
e continua em direo ao incio a menos que existam entradas de ndice
duplicadas no final. Neste caso, Seek comea por uma entrada arbitrria entre
as entradas de ndice duplicadas no final do ndice.
Quando informamos uma chave para o mtodo Seek procurar, esta
chave deve ser no mesmo formato que o estabelecido no ndice do arquivo
(index). Por exemplo: no TBMercadoria a chave do ndice o Cdigo, ento o
Seek somente faz a procura pelo cdigo. No podemos pedir para procurar
pela Descrio da mercadoria, pois para isto deveria existir um ndice para
descrio.
Em nosso exemplo se NoMatch for True (ou seja, se no encontrou
nenhum registro que seja igual ao contedo da varivel ProcuraCdigo)
movemos para o registro anterior e depois o formulrio atualizado. Fazemos
isto pois quando uma procura no bem sucedida a tabela posicionada no
fim de arquivo, e como no existe nenhum registro nesta posio,
movimentamos para um registro antes, onde o ultimo registro includo se
encontra.
Quando clicarmos no boto Consultar uma janela como a que esta
abaixo aparecer no video:
12.6 EXCLUSO
228
229
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
Option Explicit
Dim BancoDeDados As Database
Dim TBCliente As Recordset
Private Sub cmdAlterar_Click()
cmdIncluir.Enabled = False
cmdAlterar.Enabled = False
cmdConsultar.Enabled = False
cmdExcluir.Enabled = False
cmdAnterior.Enabled = False
cmdProximo.Enabled = False
cmdGravar.Enabled = True
cmdSair.Enabled = True
Frame1.Enabled = True
txtCdCliente.Enabled = False
txtNome.SetFocus
TBCliente.Edit
End Sub
Private Sub cmdAnterior_Click()
TBCliente.MovePrevious
230
Cdigo
do
End Sub
Private Sub cmdExcluir_Click()
If MsgBox("Confirma Excluso?", vbYesNo) = vbYes Then
TBCliente.Delete
cmdAnterior_Click
End If
End Sub
Private Sub cmdGravar_Click()
cmdIncluir.Enabled = True
cmdAlterar.Enabled = True
cmdConsultar.Enabled = True
cmdExcluir.Enabled = True
cmdAnterior.Enabled = True
cmdProximo.Enabled = True
cmdGravar.Enabled = False
cmdSair.Enabled = True
231
Estewww.megacursos.com.br
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
Frame1.Enabled = False
txtCdCliente.Enabled = True
AtualizaCampos
TBCliente.Update
End Sub
Private Sub cmdIncluir_Click()
cmdIncluir.Enabled = False
cmdAlterar.Enabled = False
cmdConsultar.Enabled = False
cmdExcluir.Enabled = False
cmdAnterior.Enabled = False
cmdProximo.Enabled = False
cmdGravar.Enabled = True
cmdSair.Enabled = True
LimpaFormulrio
Frame1.Enabled = True
txtCdCliente.SetFocus
End Sub
Private Sub cmdProximo_Click()
TBCliente.MoveNext
If TBCliente.EOF = True Then
TBCliente.MovePrevious
End If
AtualizaFormulrio
End Sub
Private Sub cmdSair_Click()
Unload frmCadClientes
End Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
232
Estewww.megacursos.com.br
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
cmdAlterar.Enabled = True
cmdConsultar.Enabled = True
cmdExcluir.Enabled = True
cmdAnterior.Enabled = True
cmdProximo.Enabled = True
cmdGravar.Enabled = False
cmdSair.Enabled = True
Frame1.Enabled = False
Else
TBCliente.AddNew
End If
End Sub
Private Sub txtValor_LostFocus()
txtLimiteCrdito.Text
=
Format(txtLimiteCrdito.Text,
"Standard")
End Sub
235
Estewww.megacursos.com.br
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
Criamos uma varivel para cada tabela que ser aberta. Precisamos
agora criar um evento Form_Load para abrir todas essas tabelas.
Veja que abrimos todas as trs tabelas que sero usadas neste
formulrio, e abrimos tambm todos os ndices relativo a cada uma.
As nossas funes auxiliares sofrero alguma mudana pois
acrescentamos em nosso formulrio dois labels, e um conter a descrio da
mercadoria e outro o nome do cliente.
237
Estewww.megacursos.com.br
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
238
239
Estewww.megacursos.com.br
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
A incluso para esta tabela segue o estilo que usamos para os outros
formulrios. Existe somente uma diferena fundamental que o aparecimento
do nome do cliente e a descrio da mercadoria quando o usurio digitar o
cdigo correspondente. Ou seja, numa incluso, quando o usurio digitar o
cdigo da mercadoria que foi vendida, o programa ter que acessar a tabela
de Mercadoria, procurar o cdigo que o usurio acabou de digitar, e trazer de
l a descrio daquele cdigo.
Este trabalho todo podemos fazer no evento LostFocus da caixa de
texto. Por que este evento? Porque esta procura ser feita DEPOIS que o
usurio digitar o cdigo e passar para a prxima caixa de texto (ou seja,
quando o objeto perder o foco).
Ento, diante disto, precisamos criar dois evento LostFocus. Uma
para a caixa de texto txtCdigo e outro para txtCdCliente:
240
241
Este www.megacursos.com.br
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
242
243
Estewww.megacursos.com.br
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
A excluso tambm semelhante aos anteriores:
Option Explicit
Dim
Dim
Dim
Dim
BancoDeDados As Database
TBVendas As Recordset
TBMercadoria As Recordset
TBCliente As Recordset
Estewww.megacursos.com.br
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
End Sub
Private Sub cmdGravar_Click()
cmdIncluir.Enabled = True
cmdAlterar.Enabled = True
cmdConsultar.Enabled = True
cmdExcluir.Enabled = True
cmdAnterior.Enabled = True
cmdProximo.Enabled = True
cmdGravar.Enabled = False
cmdSair.Enabled = True
Frame1.Enabled = False
txtCdigo.Enabled = True
txtCdCliente.Enabled = True
AtualizaCampos
TBVendas.Update
End Sub
Private Sub cmdIncluir_Click()
cmdIncluir.Enabled = False
cmdAlterar.Enabled = False
cmdConsultar.Enabled = False
cmdExcluir.Enabled = False
cmdAnterior.Enabled = False
cmdProximo.Enabled = False
cmdGravar.Enabled = True
cmdSair.Enabled = True
LimpaFormulrio
Frame1.Enabled = True
txtCdigo.SetFocus
End Sub
Private Sub cmdProximo_Click()
246
Estewww.megacursos.com.br
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
End Sub
Private Sub Form_Unload(Cancel As Integer)
TBVendas.Close
TBMercadoria.Clone
TBCliente.Close
BancoDeDados.Close
End Sub
Private Function AtualizaCampos()
TBVendas("Cdigo") = txtCdigo
TBVendas("CdCliente") = txtCdCliente
TBVendas("ValorVenda") = txtValorVenda
TBVendas("QuantidadeVendida") = txtQuantidadeVendida
End Function
Estewww.megacursos.com.br
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
txtValorVenda = Format(TBVendas("ValorVenda"),
"Standard")
txtQuantidadeVendida = TBVendas("QuantidadeVendida")
TBMercadoria.Seek "=", txtCdigo
TBCliente.Seek "=", txtCdCliente
lblDescrio = TBMercadoria("Descrio")
lblNomeCliente = TBCliente("Nome")
End Function
Private Function CancelaDigitao()
AtualizaFormulrio
cmdIncluir.Enabled = True
cmdAlterar.Enabled = True
cmdConsultar.Enabled = True
cmdExcluir.Enabled = True
cmdAnterior.Enabled = True
cmdProximo.Enabled = True
cmdGravar.Enabled = False
cmdSair.Enabled = True
Frame1.Enabled = False
End Function
250
251
Estewww.megacursos.com.br
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
13 USANDO O CONTROLE
DATA
Data
DBGrid
252
253
Estewww.megacursos.com.br
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
254
255
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
13.2 DBGRID
No projeto desenvolvido no captulo anterior, deixamos de codificar o
boto de Consulta. Vamos fazer isto agora usando um DBGrid para auxiliar na
consulta. Adicione um novo formulrio e mude a propriedade Name para
256
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
Fazendo isto estaremos fazendo uma ligao entre o banco de dados e a
tabela, j definida no objeto Data, para o objeto DBGrid. Com isto o DBGrid j
saber qual tabela que ele ir manipular.
259
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
260
261
Estewww.megacursos.com.br
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
262
263
14 IMPRESSO
Printer
Crystal Reports
265
Este arquivo
compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
14.1 PRINTER
Em nosso programa vamos acrescentar um item no menu principal
chamado impresso do Estoque e com isto vamos imprimir o contedo da
tabela mercadoria.
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
vbPRPSEnvC65
vbPRPSEnvB4
vbPRPSEnvB5
vbPRPSEnvB6
vbPRPSEnvItaly
vbPRPSEnvMonarch
vbPRPSEnvPersonal
vbPRPSFanfoldUS
vbPRPSFanfoldStdGerman
vbPRPSFanfoldLglGerman
vbPRPSUser
32
33
34
35
36
37
38
39
40
41
256
Resoluo Draft
Baixa Resoluo
Mdia Resoluo
Alta Resoluo
Os mtodos:
EndDoc: Finaliza a impresso de um relatrio
KillDoc: Termina imediatamente a impresso
NewPage: Fora a impresso passar para a prxima pgina.
Print <expresso> : Imprime uma expresso ou varivel especificada.
O Objeto Printer no aparece na caixa de ferramentas, nem possui um
cone como outros objetos. Ele interno que no possui formato visual.
Para desenvolver nossa rotina de impresso, d um click na opo
Impresso Estoque no menu e vamos codificar o programa:
268
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
campo Descrio, ou uma SQL ordenado pela "Descrio", e abri-lo na rotina
de impresso.
Usamos o objeto Printer para definir com qual fonte de letra o relatrio
ser impresso e qual o tamanho usado
271
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
Quando colocamos um print sozinho, sem nenhuma expresso
acompanhado, indica que queremos forar a impresso de uma linha em
branco.
Private Sub mnuImpresso_Click()
Dim BancoDeDados As Database
Dim TBMercadoria As Recordset
Dim Linha As Integer
If MsgBox("Inicia a impresso?",36,"Relao Mercadoria")=7
Then
Exit Sub
End If
Linha = 1
Set BancoDeDados = OpenDatabase(App.Path & "\Estoque.MDB")
Set TBMercadoria =
BancoDeDados.OpenRecordset("Mercadoria", dbOpenTable)
TBMercadoria.Index = "IndCdigo"
Printer.FontName = "Arial"
Printer.FontSize = 10
Do While Not TBMercadoria.EOF
If Linha = 1 Then
Cabealho
End If
Printer.CurrentX = 300
Printer.Print Tab(3); TBMercadoria("Cdigo");
Printer.Print Tab(10); TBMercadoria("Descrio");
Printer.Print Tab(50); Format(TBMercadoria
("Quantidade"), "##,###");
Printer.Print Tab(70); Format(TBMercadoria("Valor"),
"Currency")
272
Linha = Linha + 1
TBMercadoria.MoveNext
If Linha >= 50 Then
Printer.NewPage
Linha = 1
End If
Loop
Printer.EndDoc
TBMercadoria.Close
BancoDeDados.Close
End Sub
Private Function Cabealho()
Printer.Print
Printer.Print
Printer.Print
Printer.Print
Printer.Print
Printer.Print
Tab(3); "Cd";
Tab(10); "Descrio";
Tab(50); "Quantidade";
Tab(70); "Valor"
String(100, "-")
End Function
273
Estewww.megacursos.com.br
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
Aperte o boto Data File para escolher o banco de dados que sera
usado no relatrio. Depois de escolhido ir aparecer a relao de todas as
tabelas existentes no Banco de Dados. Escolha o Arquivo "Estoque.MDB".
275
Estewww.megacursos.com.br
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
276
277
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
Escolha somente os campos da tabela de Mercadoria.
278
Nesta tela pode-se fazer um filtro dos registros que iro compr o
relatrio. No faremos nenhum tipo de filtro.
Este
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
www.megacursos.com.br
num formato diferente. Deve-se escolher o que mais se adapta ao tipo que
relatrio que se esta criando.
Aperte agora o boto "Preview Report" para ver como ficou.
Uma vez feito tudo isto, nosso relatrio esta pronto. Vamos agora
salvar o arquivo e mandar executar em nosso programa.
Va no menu "File", opo "Save" e grave este relatrio com o nome de
"Mercadoria".
Feche o Cristal Reports e volte para o nosso programa.
Crie mais um formulrio para o projeto, e d o nome de
"frmRelatrios". Abra uma opo no menu principal do programa e acrescenteo nele.
281
Estewww.megacursos.com.br
arquivo compe a coletnea STC - www.trabalheemcasaoverdadeiro.com.br
283