Você está na página 1de 72

MICROSOFT VISUAL BASIC

1. A APLICAO TRADICIONAL E A APLICAO ORIENTADA A OBJETOS E


DIRIGIDA A EVENTOS

Em uma aplicao tradicional ou programada de forma procedural, a aplicao por
si s controla que pores do cdigo sero executadas. A execuo comea na primeira
linha de cdigo e segue um caminho pr-definido atravs de toda a aplicao, chamando
subrotinas conforme for sendo necessrio.
Em uma aplicao controlada por eventos ou event-driven, uma ao do usurio
ou do sistema ativa um procedimento associado a este evento. Assim a ordem atravs do
qual o seu Cdigo de programa executado depende de quais eventos ocorram. Estes
eventos dependem das aes tomadas pelo usurio.


2. OBJETOS, MTODOS E EVENTOS

Objetos so coisas definidas por CLASSES e que possuem Propriedades,
Mtodos e Eventos. Uma janela, um boto e um banco de dados so objetos. Mas para
entender bem o que um objeto ainda preciso definir propriedades, mtodos e eventos.
Comecemos pelas Classes. Uma janela muito diferente de um boto, mas os
dois so objetos. Isso acontece porque eles so definidos por Classes diferentes. Classes
definem um objeto a grosso modo. Definem suas propriedades, seus mtodos e seus
eventos. Classes so os moldes dos objetos.
Um boto pode ser diferente do outro (maior ou menor, com uma legenda
diferente...). Mas como isso possvel se eles pertencem mesma classe? Porque suas
propriedades so diferentes. As propriedades definem caractersticas mais especficas
dos objetos. Um boto tem, por exemplo, propriedades que determinam sua altura, sua
largura e sua legenda.
Um mtodo uma ao que age sobre um objeto. Por exemplo, se tivermos uma
lista, adicionamos ou removemos itens atravs de mtodos. Ou ainda, se quisssemos
mover um certo objeto pela tela, poderamos usar um mtodo.
Por fim, o evento. Digamos que em um certo programa, pressionamos um boto e
um Beep emitido. Como o programa sabe quando apertamos o boto? Ele sabe porque
quando um objeto da classe boto clicado, gerado um evento. E a esse evento que
est associado o cdigo (comandos) que produzir o Beep. Ocorrem tambm eventos,
por exemplo, ao modificarmos o texto de uma caixa de texto ou ao mover o cursor do
mouse sobre uma janela.
Para ficar mais claro, um exemplo no muito nobre: digamos que haja uma classe
"Galinha". Um objeto Galinha poderia ter a propriedade "Idade", uma propriedade
"CorDasPenas" e uma propriedade "Nome". Ela teria um mtodo "PoeOvo" e um mtodo
"Cacareja". E ela geraria eventos ao dormir ao acordar e ao ser ameaada.



Ling. de Programao
Prof.: Renata Rocha
ADO
3. AMBIENTE DE PROGRAMAO DO VISUAL BASIC

Note que a janela Properties tem, logo abaixo da barra de ttulo, uma "caixa de
seleo" dizendo "Form1 Form". Esta caixa lista todos os objetos colocados na janela
ativa. O texto em negrito "Form1" indica o nome do objeto. O texto ao lado, "Form", indica
a classe qual pertence o objeto. Logo abaixo h a lista das propriedades. esquerda
ficam os nomes das propriedades e a direita os seus respectivos valores.


4. PRINCIPAIS CONTROLES DO VB

CommandButton (Boto de Comando) um dos Controles mais utilizados em
programas do Windows, no apenas em VB. Sua funo principal executar comandos
quando clicado. O Evento Click o mais importante para ele. As Propriedades Caption,
Name, Enabled so importantes entre outras. A propriedade Enabled indica se o boto
responder ao Evento Click ou no.

PictureBox (Caixa de Imagem) - Este Controle utilizado para exibir figuras nos
Formulrios e tambm responde ao Evento Click. A propriedade Picture a que abre a
caixa de dilogo para indicarmos o path do cone ou da figura que queremos exibir.

Label (Etiqueta ou Rtulo) Exibir um texto onde o usurio no possa alterar. Sua
propriedade principal a Caption (que o texto que o Controle exibir). Outras
Propriedades de formatao do texto: FontName, FontBold, Alignment, etc.

TextBox (Caixa de Texto) Exibir um texto onde o usurio possa editar. Sua
propriedade principal o Text (que o texto que o Controle contem). As Propriedades de
formatao do texto so idnticas ao Label.

CheckBox (Caixa de Verificao) til quando necessitamos informar ao sistema
que determinadas informaes so verdadeiras ou falsas. Em um mesmo Formulrio
vrios CheckBoxs podem assumir o valor verdadeiro ao mesmo tempo. Algumas
Propriedades: Visible, Enabled e Caption.

OptionButton (Boto de Opo ou boto de rdio) Com este Controle somente
uma das opes pode assumir o valor verdadeiro em um mesmo conjunto. Para Ter mais
de um conjunto verdadeiro temos que utilizar o Controle Frame.

ListBox (Caixa de Listagem) Exibir e selecionar uma lista de itens. As
Propriedades ListCount e ListIndex so utilizadas para identificar os itens da lista. Os
Mtodos AddItem e RemoveItem so utilizados para adicionar e remover itens.

ComboBox (Caixa de Combinao) Combinao de uma TextBox com uma
ListBox. Pode-se editar um texto na parte superior ou selecionar um item da lista.
Propriedades idnticas as da ListBox.

ScrollBar (Barra de Rolagem) Vertical e Horizontal - Estes controles assumem
valos mximos ou mnimos de acordo com as propriedades Max e Min, respectivamente.
Estes controles podem receber um deslocamento pequeno (propriedade SmallChange),
que ocorre quando se clica nas setas e um deslocamento grande (propriedade
LangeChange), que ocorre quando se clica na barra. O controle recebe o valor da posio
atual.

Timer (Temporizador) til para se controlar intervalos de tempo. Evento mais
importante o Timer e a propriedade mais importante o Interval (que determina em
milisegundos o intervalo de tempo d controle).

Shape (Formas Geomtricas) Adiciona figuras geomtricas aos Formulrios. Com
a Propriedade Shape escolhemos o tipo de figura (forma). Outras Propriedades
BorderColor, BorderStyle e BackColor.

Line (Linha) Adicionar linhas geomtricas a formulrios. Propriedades
BorderColor, BorderWidth, BorderStyle, X1, X2, Y1 e Y2.

Image (Imagem) Exibe cones ou figuras e tambm responde ao Evento Click.
Diferentemente do Controle Picture este controle tem a Propriedade Stretch que ajusta o
tamanho da imagem para preencher a moldura.

Adodc (ADO Data Control) Conecta-se a um Banco de Dados para extrair e
manipular informaes deste BD.

DataList Automaticamente preenche uma lista com campos de um ADO Data
Control.


DataCombo similar ao DataList, mas permite editar o campo selecionado.


DataGrid Exibe e manipula uma srie de linhas e colunas representando Registros
e Campos de um objeto Recordset.

OLE Incorpora objetos de outros aplicativos em um formulrio.


5. PROPRIEDADES GERAIS

As principais propriedades dos objetos do Visual BASIC, que esto presentes em
praticamente todos os objetos, so as seguintes:

- Caption - Nos botes, form, e frames, altera o ttulo a ser exibido.

- Enabled - Presente em todos os objetos, permite que os objetos sejam
acessados, caso ela esteja definida como True. Esta propriedade habilita ou
desabilita o objeto.

- Visible - Torna o objeto invisvel caso esta propriedade esteja definida como
False.

- Font - Presente em objetos como textbox, label, botes command e botes
check e option. Permite que seja alterada a fonte de um objeto.

- Name - Altera o nome do objeto, para fins de referncia durante a
programao.

- Forecolor, Backcolor - define a cor da fonte e do fundo de um textbox, um
label, ou outro objeto.



6. PROPRIEDADES DO FORMULRIO

- Height - altura do formulrio
- Weight - largura do formulrio
- Maxbutton - ativa ou desativa a presena do boto Maximizar
- Minbutton - ativa ou desativa presena do boto Minimizar
- Left - altera a distncia do formulrio a partir da extrema esquerda do vdeo
- Top - altera a distncia do formulrio a partir do topo do vdeo

7. EVENTOS MAIS COMUNS

O Visual BASIC apresenta alguns eventos que so usados freqentemente, e se
apresentam na maior parte dos objetos. Abaixo segue uma relao dos principais e suas
respectivas funes.

- Click: um evento que executa determinadas aes especificadas pelo
programador quando algum clica sobre o objeto.

- Dblclick: Executa determinadas aes especificadas pelo programador quando
algum clica duas vezes sobre algum objeto.

- Load: executa aes sempre que um formulrio for carregado na memria.

- Gotfocus: quando um objeto, um boto por exemplo, apenas ganha o foco.

- Lostfocus: quando o foco passa para um outro objeto. Quando um objeto perde
o foco.

- Keypress: quando pressionada alguma tecla, geralmente em caixas de texto,
so acionados determinados comandos.

- Mousemove: sempre que se move o ponteiro do mouse, algo ser ativado.


8. VARIVEIS

Variveis so reas de memria utilizadas para armazenar dados
temporariamente. Digamos que voc queira fazer uma Calculadora. Os nmeros sero
armazenados em variveis.
Uma varivel identificada por um nome. Este nome deve obedecer s seguintes
regras:
- No pode haver repetio de nomes.
- O nome deve comear com uma letra.
- O nome no pode conter espaos, pontos, vrgulas e outros caracteres do tipo
!, $, %.
- Deve ter, no mximo, 255 caracteres.




Tipos de variveis:

Data type Storage
size
Range
Byte 1 byte 0 to 255
Boolean 2 bytes True or False
Integer 2 bytes -32,768 to 32,767
Long (long integer) 4 bytes -2,147,483,648 to 2,147,483,647
Single (single-precision
floating-point)
4 bytes -3.402823E38 to -1.401298E-45 for negative
values; 1.401298E-45 to 3.402823E38 for
positive values
Double (double-precision
floating-point)
8 bytes -1.79769313486232E308 to -
4.94065645841247E-324 for negative values;
4.94065645841247E-324 to
1.79769313486232E308 for positive values
Currency (scaled integer) 8 bytes -922,337,203,685,477.5808 to
922,337,203,685,477.5807
Decimal 14bytes +/-79,228,162,514,264,337,593,543,950,335
c/ no decimal point; +/-
7.9228162514264337593543950335 with 28
places to the right of the decimal; smallest
non-zero number is +/-
0.0000000000000000000000000001
Date 8 bytes January 1, 100 to December 31, 9999
Object 4 bytes Any Object reference
String (variable-length) 10 bytes +
string
length
0 to approximately 2 billion
String (fixed-length) Length of
string
1 to approximately 65,400
Variant (with numbers) 16 bytes Any numeric value up to the range of a
Double
Variant (with characters) 22 bytes +
string
length
Same range as for variable-length String


Declarao de variveis:

Dim x as String

Dim matriz(9, 9) As Integer

Obs.: Quando voc no declara uma varivel, ela considerada do tipo Variant.
Note que este tipo ocupa pelo menos 16 bytes de memria, bem mais que os outros. Mas,
ser que faz muita diferena gastar 2, 4, 8 ou 16 bytes da memria? Hoje os
computadores tm muita memria. Tudo bem, em programas pequenos isto no ser
uma diferena crucial, mas em um programa maior, com centenas de variveis, isto pode
fazer a diferena. Alm disto, devemos lembrar que o Windows pode trabalhar com vrios
programas abertos ao mesmo tempo; e se seu programa for "gordo" poder atrapalhar a
performance dos outros. Alm disto, quanto menos memria ocupa um certo tipo de dado,
mais rapidamente ele processado. Por isso, procure sempre usar o "menor" tipo de
dado possvel. Mas lembre-se: se voc ultrapassar o limite da varivel acontecer um
erro. (Exemplo: tente criar uma varivel do tipo Byte e atribua a ela um valor maior que
255).


Converso de tipos de variveis

Funo Descrio
Cbool Converte seu argumento para Boolean
Cbyte Converte seu argumento para Byte
Ccur Converte seu argumento para Currency
Cdate Converte seu argumento para Date
CDbl Converte seu argumento para Double
Cint Converte seu argumento para Integer
CLng Converte seu argumento para Long
CSng Converte seu argumento para Single
CStr Converte seu argumento para String
Cvar Converte seu argumento para Variant
CVErr Converte seu argumento para Error


9. INSTRUES DE FLUXO DE CONTROLE E INSTRUES LOOP

If ... Then ... End If


If ... Then ... Else ... End If


Select Case End Select


Select Case Case Else End Select


Do ... Loop (Do While Do Until)


For ... Next (Step)


While ... Wend






10. A INSTRUO EXIT

A instruo Exit permite que voc saia prematuramente de um bloco de instrues
em uma estrutura de controle de um loop. Exemplo:

x = 0
Do While x < 10
If Vetor(x) < 0 Then Exit Do
Vetor(x) = Sqr(Vetor(x))
x = x + 1
Loop


11. UTILIZANDO MAIS DE UM FORMULRIO

A adio de novos formulrios na sua aplicao feita atravs do menu Project,
comando Add Form.


12. CONECTANDO FORMULRIOS

Comando Ao
Load form Carrega o formulrio, mas o deixa invisvel.
Form.Show [Modal] Mostra o formulrio se ele estiver invisvel. Se ele no
estiver carregado, ento ele primeiro carrega o
formulrio e depois o mostra. Modal define se o
formulrio que fez a carga fica parado at a desativao
do novo formulrio (1), ou se continua a sua execuo
sem se importar com o prximo formulrio (0).
Exemplos:
Form1.Show (0)
Form1.Show (1)
Unload form O formulrio descarregado da memria e a sua
execuo encerrada.


13. FORMULRIOS MDI

Para criar um formulrio MDI, clique sobre o menu Project e escolha a opo Add
MDI Form. Um projeto do VB s pode possuir um formulrio MDI. Para que os outros
formulrios sejam abertos dentro do MDI, a propriedade MDIChild de cada um deles deve
ser definida como True.


14. FORMULRIOS SPLASH

O formulrio Splash aquela tela que aparece logo ao iniciar a aplicao e
desaparece em seguida, como se fosse uma tela de abertura/apresentao.
Para criar um formulrio Splash, clique sobre o menu Project > Add Form e
escolha a opo Splash Screen.
Em seguida, defina uma aparncia agradvel ao Splash, adicionando novos
objetos (Label, TextBox, Image) e/ou excluindo os objetos j inseridos automaticamente.
Para fazer com que o Splash seja apresentado apenas durante alguns segundos,
devemos adicionar ainda um objeto Timer.

A propriedade Interval do objeto Timer deve ser definida de acordo com o tempo
que o Splash ser apresentado. Este tempo definido em milisegundos. Por exemplo,
para mostrar o Splash durante 4 segundos, defina a propriedade Interval como 4000.
Alm disso, devemos adicionar um pequeno cdigo de programao associado ao
evento Timer do objeto Timer.

Private Sub Timer1_Timer()
MDIForm1.Show
Unload Me
End Sub

No cdigo acima, ao trmino dos 4 segundos, mostrado o MDIForm, que
provavelmente o formulrio principal da aplicao, e em seguida o Splash
descarregado.
Para que o Splash seja o primeiro formulrio a ser apresentado, clique sobre o
menu Project > Project1 Properties (em Project1 estar o nome do seu projeto). Em
seguida, na guia General, escolha o formulrio Splash na lista Startup Object.


15. CRIAO DE MENUS

Para a criao de um Menu devemos ir ao menu Tools Menu Editor.

1) Comeamos digitando o Ttulo (em Caption) do menu mais esquerda. Caso
desejemos acessar esse menu via Alt e a letra grifada devemos inserir o & antes da
letra que ser grifada.
2) Depois digitamos o nome (em Name) do menu para referncia no cdigo.
3) Os outros itens no so obrigatrios.
4) Clicar em Next para entrar um novo menu ou item de menu. Caso seja um item de
menu devemos clicar na seta para a direita quando aparecero trs pontinhos
esquerda do ttulo do item que ficar abaixo do nome do menu.




16. CRIANDO UMA BARRA DE FERRAMENTAS

Para adicionar uma barra de ferramentas ao seu programa, primeiro preciso
adicionar um componente Toolbox. Clique sobre o menu Project > Components e
escolha a opo Microsoft Windows Common Controls 5.0. Surgiro alguns componentes
na Toolbox, dentre eles o Toolbar e o ImageList, que utilizaremos na criao da barra de
ferramentas. Siga os passos:
- Desenhe no seu formulrio um objeto Toolbar e um objeto ImageList.
- No objeto ImageList, sero armazenadas as imagens utilizadas na Toolbar.
Clique sobre o ImageList com o boto direito e escolha Properties.
- Na janela que se abre, escolha a guia Images.



- Clique no boto Insert Picture para adicionar as imagens, repetindo o processo
para cada imagem a ser adicionada.
- Repare que cada imagem adicionada possui um ndice (Index).
- Clique em OK aps ter adicionado todas as imagens.
- Para adicionar botes Toolbar, clique sobre ela com o boto direito e escolha
Properties.
- Na janela que se abre, escolha a guia Buttons.



- Clique em Insert Button para adicionar botes.
- Para cada boto adicionado defina as propriedades Image (nmero da imagem
no ImageList) e ToolTipText (texto informativo mostrado quando se move o
mouse sobre o boto).
- Aps inserir e configurar todos os botes, clique em OK.

Em linha de cdigo, para selecionar qual boto foi clicado, use um cdigo
semelhante ao exemplo seguinte:

Private Sub Toolbar1_ButtonClick(ByVal Button As ComctlLib.Button)
Select Case Button.Index
Case 1: Form1.Show
Case 2: Form2.Show
Case 3: Form3.Show
Case 4: Form4.Show
Case 5: Form5.Show
End Select
End Sub

No exemplo acima, cada boto clicado abre um formulrio.


17. ESCOPO (OS NVEIS DE UM PROGRAMA)

Private Sub txtNome_Change()
Dim Nome As String
Nome = txtNome.Text A varivel Nome recebe a propriedade Text da
End Sub txtNome

Quando declaramos uma varivel com um Dim, dentro de um subprocedimento
(como no exemplo acima), a varivel s existe dentro daquele subprocedimento. Ela no
est disponvel para outras "Subs". Alm disto, quando a Sub que a continha acaba de
ser executada, o valor da varivel se perde, mesmo para futuras "chamadas" da mesma
Sub.

Uma varivel declarada na seo Declarations (General) de um Form est
disponvel para todas as suas Subs. Porm, se usarmos dois formulrios, a varivel
declarada em um deles no estar disponvel para o outro. A soluo declarar a varivel
em um nvel "mais abrangente": o mdulo. Para criar um mdulo, acesse o menu Project
> Add Module. Ento, declare a varivel da seguinte maneira:

Public Nome as String

Note que declaramos usando "Public", que informa ao VB que esta varivel ser
"pblica", ou seja, disponvel para todas as Subs de todos os Forms deste programa.

18. A LINGUAGEM SQL

A linguagem SQL(Structured Query Language) uma linguagem de alto nvel para
manipulao de dados dentro do modelo relacional. Seu objetivo fornecer uma interface
de alto nvel ao usurio. uma linguagem no procedural, e,no cabe ao usurio definir
como o gerenciador de banco de dados executar uma tarefa, mas somente o ele que
deve fazer.
Uma instruo SQL consiste em trs partes:

As declaraes de parmetros
A instruo manipulativa
As declaraes de opes

Vejamos na tabela abaixo um resumo das clusulas manipulativas e suas finalidades:

Instruo Funo
SELECT
Obtm um grupo de registros e insere os registros em um dynaset ou em
uma tabela.
UPDATE Define os valores dos campos de uma tabela em uma atualizao.
DELETE
FROM
Remove registros de uma tabela.
INSERT INTO Acrescenta um grupo de registros a uma tabela.


Vejamos alguns exemplos da instruo SELECT:

1) Seleciona os campos "Primeiro nome" e "Sobrenome" de todos os registros da tabela
Empregados.

SELECT [Primeiro nome], [Sobrenome] FROM Empregados

2) Seleciona todos os campos da tabela Empregados. Note o uso parmetro (*) indicando
todos os campos da tabela indicada.

SELECT Empregados.* FROM Empregados

3) Conta o nmero de registros que tm uma entrada no campo "Cdigo postal" e coloca
o ttulo Contagem no topo da coluna.

SELECT Count([Cdigo postal]) AS Contagem FROM Clientes

4) Seleciona os campos "Primeiro nome" e "Sobrenome" de cada registro cujo sobrenome
seja Pereira.

SELECT [Primeiro nome], [Sobrenome] FROM Empregados WHERE [Sobrenome] =
'Pereira'

5) Seleciona os campos "Primeiro nome" e "Sobrenome" para Empregados cujos
sobrenomes comeam pela letra S.

SELECT [Primeiro nome], [Sobrenome] FROM Empregados WHERE [Sobrenome] Like
'S*'

Observaes:

FROM Indica as tabelas utilizadas como fonte de dados.

WHERE Especifica as condies que os registros devem satisfazer para compor o
subconjunto de dados.
19. BANCOS DE DADOS FIREBIRD

19.1. Obtendo o Firebird

A ltima verso do Firebird pode ser baixada gratuitamente no site oficial, atravs de
seu browser preferido acesse o endereo http://www.firebirdsql.com/.

Em seguida, selecione a opo download.


Ao contrrio de muitos sistemas de gerenciamento de bancos de dados que executam
apenas na plataforma Windows, o Firebird compatvel com Linux, Mac, Unix, dentre
outros. Por isso tenha o cuidado de selecionar o programa na categoria win32 que
apropriada para quem trabalha com o Windows.



Selecione em seguida de que servidor ser feito o download do programa:


Dica: as distribuies do Firebird terminadas com a string -RCn no so verses
finais, por isso, prefira usar a ltima release do produto que muito mais estvel, e
no, uma verso beta que ainda no foi testada totalmente.

19.2. Instalando o Firebird

a) Abra a pasta onde foi salvo o arquivo baixado do Firebird, em seguida, d um
duplo clique sobre o cone do programa.



b) Ser apresentada uma caixa de dialogo com a mensagem This will install
Firebird Database Server 1.0. Do you wish to continue?. Clique no boto
Sim para iniciar a instalao.



c) Antes de clicar no boto Next > para continuar a instalao, feche todos os
aplicativos abertos.

d) Ser apresentada a License Agreement, selecione o boto de opo I
accept the agreement para indicar ao programa que voc concorda com a
licena, em seguida, clique no boto Next > para continuar a instalao.

e) Na caixa de dilogo Information sero apresentadas informaes
complementares sobre a instalao do Firebird. Clique no boto Next > para
continuar.

f) No caixa de dilogo Select Destination Directory ser possvel informar o
local onde o Firebird ser instalado. recomendvel no modificar a localizao
padro que \Arquivos de programas\Firebird. Clique no boto Next
> para continuar.

g) O prximo passo informar os componentes a serem instalados, selecione a
opo Full installation of Server and development tools, em seguida,
clique no boto Next > para continuar.

h) Na caixa de dilogo Select Start Menu Folder dever ser informado o nome
da pasta do menu iniciar onde os cones do programa sero criados. Deixe o
nome padro da pasta que Firebird. D um clique no boto Next > para
continuar.

i) Na caixa de dilogo Select Additional Tasks no altere nenhuma das
opes, simplesmente, d um clique no no boto Next > para continuar.




Dica: as distribuies do Firebird quando instaladas no Windows 95 e 98 so
executadas como um aplicativo. A partir do Windows 2000 como um servio.

j) Na caixa de dilogo Ready to install clique no boto Install para iniciar a
copia dos arquivos para o disco rgido de seu computador.
k) Se for apresentada outra caixa de dilogo, clique no boto Next ou Ok
para continuar a instalao.
19.3. Registrando um novo Servidor no Firebird

a) Aps executar o IB Console, d um clique com o boto direito do mouse sobre
o objeto InterBase Server, em seguida selecione a opo Register ... do
menu de atalho.




b) Selecione a opo Remote Server, em seguida, preenche todos parmetros
necessrios ao registro e conexo de um novo servidor no IB Console.



Nome do Servidor: nmero IP da
mquina local (e.g. 127.0.0.1), ou
ento, o nmero IP de uma
mquina remota da rede (e.g.
192.168.0.1).
Protocolo da Rede: TCP/IP.
Apelido do Servidor:
normalmente o nome da
instituio, departamento ou setor
onde o computador que possui o
banco de dados esta armazenado
(e.g. Laboratorio3).
Descrio: informao
complementar

Nome do Usurio: SYSDBA
Senha: masterkey



No se esquea de deixar
selecionada a caixa de checagem
Save Alias Information.


c) Aps preencher todos os parmetros obrigatrios, d um clique com o boto
esquerdo do mouse no boto OK.





19.4. Fechando a conexo de um Servidor no Firebird

a) Estando no IB Console, d um clique com o boto direito do mouse sobre o
objeto DSI, em seguida selecione a opo Logout do menu de atalho.




b) O IB Console apresentar uma caixa de dialogo com a pergunta: voc tem
certeza que voc quer fechar a conexo do servidor selecionado?. D um
clique no boto Sim.



19.5. Abrindo a conexo de um Servidor no Firebird

a) Estando no IB Console, d um clique com o boto direito do mouse sobre o
objeto DSI, em seguida selecione a opo Login... do menu de atalho.




b) Ser solicitada a informao de Login no servidor. Informe para os campos
Nome do Usurio e Senha, respectivamente, sysdba e masterkey.
Em seguida, d um clique no boto Login.



19.6. Criando um novo Banco de Dados

a) Estando no IB Console, d um clique com o boto direito do mouse sobre o
objeto Database, em seguida selecione a opo Create Database... do
menu de atalho.




b) Durante o processo de criao de um novo Banco de Dados obrigatrio o
preenchimento dos seguintes campos: Filename(s), Size (Pages) e
Alias. interessante preencher o campo Size (Pages) com o valor padro
4096 e deixar selecionada a caixa de checagem Register Database.
Aps preench-los d um clique no boto OK.



O cone do objeto de dados correspondente ao banco de dados Hotel ser includo
dentro do objeto Databases do Servidor DSI.



19.7. Verificando onde foi gravado o novo Banco de Dados

a) D um clique com o boto direito do mouse sobre o cone do servidor DSI,
em seguida, selecione a opo Properties....

b) Na caixa de dilogo Server Properties selecione a guia General e verifique
o contedo do campo Attached Databases.





19.8. Trabalhando com Tabelas

Como criar uma tabela e definir o campo que a chave primria

a) Selecione o nome do Banco de Dados onde ser criada a tabela clicando com o
boto esquerdo do mouse. Em seguida, selecione o comando Interactive
SQL... existente no menu Tools.



b) Digite no Interactive SQL o comando Create Table com as informaes
sobre o nome da tabela; o nome, o tipo de dados e se o contedo pode ser nulo
para cada campo; e o nome do campo escolhido para ser chave primria.



c) Ao terminar de digitar o comando no Interactive SQL execute-o pressionando
Ctrl+E ou ento clicando sobre o cone da barra de ferramentas mostrada na
ferramenta abaixo:


d) Se o comando digitado no possuir nenhum erro de sintaxe e for executado
corretamente, a tela do Interactive SQL ser apagada e no ser apresentada
uma mensagem de erro. Para rever o comando digitado use o cone da barra de
ferramentas mostrado na figura abaixo:




Como conferir se a tabela Hospede e sua chave primria foi criada

a) Com o boto esquerdo do mouse clique na opo Windows do menu do
Interactive SQL, selecione na caixa de listagem da caixa de dilogo do Active
Windows o IB Console, em seguida, clique no boto de comando Switch
To....



b) Ao retornar a janela do IB Console, selecione com o mouse o objeto Table
existente dentro do objeto Hotel do Databases do servidor DSI. Se a
tabela Hospede tiver sido realmente criada ela ser apresentada no lado
direito da janela do IB Console.



Como criar uma tabela que possui dependncia de identificao

Suponha que voc viajou para uma cidade onde pretende passar parte de suas frias,
chegando l decidiu se hospedar em um Hotel.
Como se trata de um novo cliente o atendente somente conseguir registrar sua
hospedagem aps cadastr-lo como novo hospede.
Dizemos neste caso que a tabela Hospedagens possui dependncia de identificao
da tabela Hospedes, ou seja, somente ser possvel cadastrar hospedagens para
hospedes anteriormente cadastrados.
O procedimento para criao da tabela Hospedagens ser acrescido da criao de um
relacionamento com a tabela Hospedes.

a) Digite os comandos create table e alter table conforme mostrado na
figura abaixo. Observe que o campo hContador que identifica o hospede
aparece com o mesmo nome nas tabelas Hospedes e Hospedagens.





20. CONEXO DO BANCO DE DADOS FIREBIRD COM O VISUAL BASIC

20.1. Instalao do Driver ODBC

No VB, para abrir um banco de dados Firebird, necessrio antes instalar um
driver ODBC. Para instal-lo, basta seguir os passos do assistente. Nesta apostila, est
sendo usado o IBPhoenix Firebird ODBC Driver.







20.2. Incluindo a Referncia ao ADO

No Visual Basic, para incluir a referncia ao ADO, clique no menu Project >
References. Na lista relacionada marque a opo: Microsoft ActiveX Data Objects 2.x
Library.

20.3. Criando a String de Conexo

A string de conexo um texto com informaes necessrias conexo. Para
cri-la, inclua em seu projeto o componente Data Environment executando uma das
seguintes seqncias: Menu Project Add Data Environment, ou ento, Menu Project
More Active X Designers Data Environment.
Ser mostrada a janela do Data Environment. D um clique com o boto direito
do mouse sobre o item Connection1, em seguida, selecione a opo Properties... do
menu de atalho.



Na prxima caixa de dilogo dever ser selecionado o provedor de acesso para o
banco de dados que a conexo abrir. Selecione a opo Microsoft OLE DB Provider
for ODBC Drivers.



Clique em Next.

Na tela seguinte, selecione a opo Use connection string e clique no boto Build.




Selecione a guia Machine Data Source e clique em New.



Na prxima tela, clique em Avanar.



Selecione a opo Firebird/Interbase(r) driver e clique em Avanar, depois em
Concluir.



Na tela que se segue, deveremos dar um nome fonte de dados criada (DSN).
Tambm ser preciso indicar o arquivo do banco de dados (Database), a conta para
acesso ao banco (Database Account) e a senha (Password). No exemplo abaixo,
nomeamos a fonte de dados como Banco, o arquivo do banco de dados se chama
Teste.gdb e est localizado na rea de Trabalho, a conta para acesso SYSDBA e a
senha masterkey. Veja a figura:



Aps efetuar todas as configuraes nesta tela, clique em Test connection.
Dever aparecer a seguinte mensagem:



Clique em OK e depois OK novamente.

Na tela anterior, dever aparecer a string de conexo, conforme mostrado abaixo:



Selecione a string de conexo e copie-a utilizando CTRL+C.
A string de conexo tambm pode ser copiada mais tarde. Para encontr-la, clique
com o boto direito sobre Connection1 e selecione Properties. Em seguida, escolha a
guia Connection.


21. DEFININDO AS VARIVEIS DO PROGRAMA

As variveis que representaro o banco de dados e a tabela devero ser
declaradas dentro da seo General/Declarations do formulrio atual.
importante ainda declarar uma varivel onde ser armazenada a string de
conexo usada para abrir o banco de dados.





22. COMANDOS PARA ABERTURA DO BANCO DE DADOS

Como a string de conexo ser utilizada em diversos eventos do formulrio,
interessante que ela seja armazenada em uma varivel para facilitar a sua reutilizao,
poupando digitao desnecessria.




23. DESENHANDO A INTERFACE DO PROGRAMA

Antes de programar os demais eventos do formulrio necessrio desenhar a
interface do programa.
Para este exemplo, levaremos em considerao que o formulrio FrmCli possui o
layout mostrado abaixo:




24. PROGRAMANDO OS EVENTOS

24.1. Consulta da Tabela

Sempre que o usurio digitar o cdigo de um cliente que j est cadastrado no
banco de dados, o programa dever mostrar os dados deste cliente. Abaixo a lgica
usada para realizar este procedimento.

Private Sub txtCodigo_LostFocus()
If Not IsNumeric(txtCodigo.Text) Then Exit Sub
Dim ComandoSQL As String
ComandoSQL = "SELECT * FROM CLIENTES " & _
"WHERE Codigo=" & txtCodigo.Text & ";"
TbCli.Open ComandoSQL, StringConexao, adOpenStatic
If TbCli.EOF Then
Limpar_Campos
Else
txtNome.Text = TbCli!nome
txtTelefone.Text = TbCli!telefone
End If
TbCli.Close
End Sub


24.2. Excluso de Registro

Antes de excluir o registro interessante solicitar do usurio a confirmao da
operao. O exemplo do cdigo est mostrado abaixo:

Private Sub btnExcluir_Click()
If Not IsNumeric(txtCodigo.Text) Then Exit Sub
Dim ComandoSQL As String
If MsgBox("Tem certeza?", vbYesNo, "Excluir") = vbYes Then
ComandoSQL = "DELETE FROM CLIENTES " & _
"WHERE Codigo=" & txtCodigo.Text & ";"
Con.Execute ComandoSQL
Limpar_Campos
txtCodigo.SetFocus
End If
End Sub


24.3. Salvamento de Registro

Private Sub btnSalvar_Click()
Dim ComandoSQL As String
Dim Comando As New ADODB.Command
ComandoSQL = "select * from CLIENTES " & _
"where codigo = " & txtCodigo.Text & ";"
TbCli.Open ComandoSQL, StringConexao, adOpenStatic
If TbCli.EOF Then
ComandoSQL = "INSERT INTO CLIENTES (codigo, nome, telefone) " & _
"VALUES (?, ?, ?)"
TbCli.Close
Comando.ActiveConnection = StringConexao
Comando.CommandText = ComandoSQL
Comando.Parameters(0) = txtCodigo.Text
Comando.Parameters(1) = txtNome.Text
Comando.Parameters(2) = txtTelefone.Text
Else
ComandoSQL = "UPDATE CLIENTES SET nome=?, telefone=? " & _
"WHERE codigo=" & txtCodigo.Text & ";"
TbCli.Close
Comando.ActiveConnection = StringConexao
Comando.CommandText = ComandoSQL
Comando.Parameters(0) = txtNome.Text
Comando.Parameters(1) = txtTelefone.Text
End If
Comando.Execute
End Sub


25. MTODOS DE MOVIMENTAO

Os mtodos de movimentao permitem a passagem de um registro para outro no
interior dos recordsets, e alteram a posio do ponteiro do registro ao passar de um
registro ativo para outro registro. Voc pode usar os mtodos de movimentao sobre
quaisquer recordsets. Vejamos a seguir os mtodos de movimentao:

MoveFirst - Movimenta o ponteiro do registro ativo para o primeiro registro do recordset
aberto.
MoveNext - Movimenta o ponteiro do registro ativo para o registro seguinte. Se no
houver registro seguinte, voc est no ltimo registro, o flag de final de arquivo EOF ser
ativado.
MovePrevious - Desloca o ponteiro do registro ativo para o registro anterior no recordset
aberto. Se no houver registro anterior, voc est no primeiro registro, o flag de incio de
arquivo BOF ser ativado.
MoveLast - Movimenta o ponteiro do registro ativo para o ltimo registro do recordset
aberto.


26. VALIDAO DE CAMPOS

Validao do contedo de um textbox durante a digitao

No cdigo abaixo, temos a validao para um campo data. Nesta caixa de texto s
ser possvel digitar nmeros, Backspace e a barra (/). Note que 47 corresponde ao
cdigo ASCII da barra.

Private Sub txtdata_KeyPress(KeyAscii As Integer)
If Not ((KeyAscii >= vbKey0 And KeyAscii <= vbKey9) Or
KeyAscii = vbKeyBack Or KeyAscii = 47) Then
KeyAscii = 0
End If
End Sub

No prximo cdigo, temos a validao para um campo moeda. Nesta caixa de
texto s ser possvel digitar nmeros, Backspace e a vrgula (,). Note que 44
corresponde ao cdigo ASCII da vrgula.

Private Sub txtvalor_KeyPress(KeyAscii As Integer)
If Not ((KeyAscii >= vbKey0 And KeyAscii <= vbKey9) Or
KeyAscii = vbKeyBack Or KeyAscii = 44) Then
KeyAscii = 0
End If
End Sub

Abaixo segue a tabela de cdigos ASCII:

ASCII Caractere ASCII Caractere ASCII Caractere ASCII Caractere
0 32 [space] 64 @ 96 `
1 33 ! 65 A 97 a
2 34 " 66 B 98 b
3 35 # 67 C 99 c
4 36 $ 68 D 100 d
5 37 % 69 E 101 e
6 38 & 70 F 102 f
7 39 ' 71 G 103 g
8 * * 40 ( 72 H 104 h
9 * * 41 ) 73 I 105 i
10 * * 42 * 74 J 106 j
11 43 + 75 K 107 k
12 44 , 76 L 108 l
13 * * 45 - 77 M 109 m
14 46 . 78 N 110 n
15 47 / 79 O 111 o
16 48 0 80 P 112 p
17 49 1 81 Q 113 q
18 50 2 82 R 114 r
19 51 3 83 S 115 s
20 52 4 84 T 116 t
21 53 5 85 U 117 u
22 54 6 86 V 118 v
23 55 7 87 W 119 w
24 56 8 88 X 120 x
25 57 9 89 Y 121 y
26 58 : 90 Z 122 z
27 59 ; 91 [ 123 {
28 60 < 92 \ 124 |
29 61 = 93 ] 125 }
30 62 > 94 ^ 126 ~
31 63 ? 95 _ 127

Caracteres no suportados pelo Windows.
* * Valores 8, 9, 10, e 13 representam backspace, tab, linefeed (alimentador de linha),
e enter, respectivamente.


Validao de datas e valores numricos aps a digitao

If Not IsDate(txtdata.Text) Then
MsgBox ("Data invlida!")
txtdata.SetFocus
Exit Sub
End If


If Not IsNumeric(txtvalor.Text) Then
MsgBox ("Valor invlido!")
txtvalor.SetFocus
Exit Sub
End If


27. DataList

A caixa de listagem vinculada aos dados Data List tem funo idntica caixa
de listagem ListBox, a qual seja, apresentar ao usurio uma lista de opes. A principal
diferena consiste no fato de a caixa de listagem vinculada aos dados buscar as
informaes em um Recordset, enquanto que a Caixa de Listagem, obtm as
informaes atravs de uma srie de instrues AddItem.

Vejamos como utilizar o controle DataList no roteiro a seguir:

1- Clique no menu Project > Components e escolha a opo Microsoft Data List Controls
6.0 (OLEDB). Selecione tambm a opo Microsoft ADO Data Control 6.0 (OLEDB).

2- Em um formulrio, insira o controle Adodc (ADO Data Control) e configure as
propriedades:

- Name Nome do controle (o nome padro Adodc1).
- ConnectionString String de conexo. Dados necessrios para efetuar a
conexo com o banco de dados (j citada anteriormente). Copie a string de
conexo do Data Environment.
- RecordSource Clique no boto ao lado da propriedade (...) e aparecer a
seguinte tela:


Deve-se escolher o tipo de comando (no caso, adCmdTable corresponde a Tabela), e o
nome da tabela ou consulta (no caso, Empregado).

3- A seguir, insira o controle DataList e atente para as seguintes propriedades:

- RowSource nome do controle de dados que contm as informaes usadas
para preencher a lista (no caso, Adodc1)
- ListField o nome do campo da origem dos dados a ser exibido na lista


28. DataCombo

Para configurar um DataCombo, proceda da mesma maneira como foi configurado
o DataList:

1- Clique no menu Project > Components e escolha a opo Microsoft DataList Controls
6.0 (OLEDB).

2- Em um formulrio, insira o controle Adodc (ADO Data Control) e configure as
propriedades:

- Name Nome do controle (o nome padro Adodc1).
- ConnectionString String de conexo. Dados necessrios para efetuar a
conexo com o banco de dados (j citada anteriormente). Copie a string de
conexo do Data Environment.
- RecordSource Clique no boto ao lado da propriedade (...) e aparecer a
seguinte tela:



Deve-se escolher o tipo de comando (no caso, adCmdTable corresponde a Tabela), e o
nome da tabela ou consulta (no caso, Empregado).

3- A seguir, insira o controle DataCombo e atente para as seguintes propriedades:

- RowSource nome do controle de dados que contm as informaes usadas
para preencher a lista (no caso, Adodc1).
- ListField o nome do campo da origem dos dados a ser exibido na lista


29. DataGrid

A grade vinculada aos dados DataGrid oferece um meio para visualizar vrios
registros ao mesmo tempo.
O seu primo pobre no VB seria o controle Grid. Enquanto o Grid precisa ser
configurado quase que totalmente via cdigo, para usar o DataGrid basta arrastar o cone
do controle para o seu formulrio e definir a propriedade DataSource para identificar o
controle de dados que contm os dados que voc quer exibir, e pronto, a grade exibe
todos os campos dos registros do recordset.

Exemplo de Utilizao e Configurao

Suponha que temos a seguinte tabela com os seguintes dados:

Empregado

Nome Telefone
Joo 3221-1234
Maria 3222-5678
Jos 3212-1234
Mauro 3213-1234
Pedro 3214-1234

Criaremos uma consulta de pessoas por nome, utilizando o DataGrid e sentenas
SQL.
Vejamos passo a passo como utilizar o DataGrid com o controle de dados
vinculados Adodc (ADO Data Control).

1- Clique no menu Project > Components e escolha a opo Microsoft DataGrid Control
6.0 (OLEDB).

2- Selecione o objeto Adodc na Toolbox do Visual Basic e acrescente-o ao seu formulrio.

3- Defina a seguir as propriedades:

- Name Nome do controle (o nome padro Adodc1).
- Visible (False) para que o objeto Adodc no aparea durante a execuo do
programa
- ConnectionString String de conexo. Dados necessrios para efetuar a
conexo com o banco de dados (j citada anteriormente). Copie a string de
conexo do Data Environment.
- RecordSource Clique no boto ao lado da propriedade (...) e aparecer a
seguinte tela:



Deve-se escolher o tipo de comando (no caso, adCmdTable corresponde a Tabela), e o
nome da tabela ou consulta (no caso, Empregado).

4- Selecione o cone do DataGrid na ToolBox e arraste-o at o seu form.

5- Defina a propriedade DataSource, vinculado-a ao controle de dados configurado
anteriormente (Adodc1).

6- Para proibir a edio, incluso e excluso de registros na grade voc deve definir como
False as propriedades AllowAddNew, AllowUpdate e AllowDelete. Isto pode ser feito
atravs da folha de propriedades do DataGrid.



7- Na folha de propriedades do DataGrid, na guia Columns, devemos associar cada
coluna do DataGrid com um campo da tabela que ser usada para preench-lo.



8- Desenhe, no mesmo formulrio, um TextBox e um CommandButton.

Para completar o nosso exemplo, falta o cdigo para a execuo da pesquisa. No
evento Click do Command1, acrescente o cdigo abaixo:

Private Sub Command1_Click()
If Text1.Text = "" Then
Adodc1.CommandType = adCmdTable
Adodc1.RecordSource = "Empregado"
Else
Adodc1.CommandType = adCmdText
Adodc1.RecordSource = "select enome, etelefone from Empregado
where Upper(enome) like '" & UCase(Text1.Text) & "%'"
End If
Adodc1.Refresh
DataGrid1.Refresh
End Sub


O resultado da execuo mostrado nas telas abaixo:









30. MASKED EDIT

Para utilizar um controle MaskedEdit, devemos, inicialmente, clicar no menu
Project > Components e escolher a opo Microsoft Masked Edit Control 6.0. Isto far
com que ele seja includo na Toolbox do VB.
Para configurar o MaskedEdit, clique sobre ele com o boto direito e escolha
Properties. Surge a tela seguinte:



Nesta tela, basta definir a mscara (Mask) e/ou o formato do campo (Format).

Alguns exemplos de formatos:

Moeda R$#,##0.00;(R$#,##0.00)
Data dd/mm/yyyy

Alguns exemplos de mscaras:

Data ##/##/####
CEP ##\.###\-###
CPF ###\.###\.###\-##
Telefone \(##\)####\-####

Note que a barra invertida (\) sempre aparece antes de um caractere especial.

Obs.1: Para limpar o contedo de um MaskedEdit, preciso atribuir a ele o formato da
mscara. Exemplos:

MaskEdBox1.Text = "__.___-___"
MaskEdBox2.Text = "(__)____-____"
MaskEdBox3.Text = "___.___.___-__"
MaskEdBox4.Text = "__/__/____"

Obs.2: Para atribuir uma data a um MaskedEdit, preciso antes format-la usando a
funo Format. Exemplo:

MaskEdBox4.Text = Format(Date, "dd/mm/yyyy")
31. CRIAO DE GRFICOS UTILIZANDO O CONTROLE MSCHART

Para construir grficos em sua aplicao voc deve usar o controle grfico do VB,
o MSChart.
O MSChart permite apresentar seus dados em forma de grfico como uma planilha
do Excel (linhas e colunas); grficos tridimensionais, grficos de torta, barra, pizza, etc.
Antes de iniciar voc deve adicionar o controle Microsoft Chart Control ao seu
projeto da seguinte maneira: clique no menu Project > Components e escolha a opo
Microsoft Chart Control 6.0 (OLEDB).
As figuras abaixo mostram a barra de ferramentas e a configurao inicial do
MSChart:
















Agora, basta definir a fonte de dados que alimentar o grfico, geralmente uma
tabela, e fazer a configurao do Controle MSChart.

Para abrir um dilogo de propriedades do controle MSChart, clique com o boto
direito do mouse sobre o mesmo, selecione a opo Properties e a janela para
configurao surge como mostrada na figura abaixo:


















Cada aba permite configurar diversas propriedades utilizadas na confeco de um grfico.

Utilizao e Configurao

Vejamos agora as propriedades do MSChart e como configur-lo.










A configurao inicial do controle grfico apresenta uma srie de quatro barras em
cinco colunas com legendas R1 a R5. Esta seqncia de dados definida pela
propriedade RowCount. A quantidade de colunas definida pela propriedade
ColumnCount. Na figura acima alteramos RowCount para 2 e ColumnCount tambm para
2 e ainda definimos a propriedade RowLabel para cada coluna e a propriedade
ShowLegend para True.

A propriedade ChartType permite obter os seguintes tipos de grficos:

Barra - Valores 0 e 1
Linha - Valores 2 e 3
reas - Valores 4, 5 , 6 e 7
Combinao - Valores 8 e 9
Torta - Valor 14
XY - Valor 16


Aba Chart

Chart Type - Permite escolher o tipo de grfico usado

Chart Options
Show Legend - Mostra a legenda no grfico
Show Markers - Marcas sobre cada coluna do grfico
Stack Series - Empilhar as colunas
Series em rows - Inverte apresentao, colunas em linhas

Aba Axis e Axis Grid

Existem diversas propriedades que permitem configurar os eixos de um grfico
como:

Espessura e cor de linhas
Definio da escala - Valor Mximo e Mnimo
Diviso da Escala - Valor Maior e Menor

Aba Series e Series Color

Permitem configurar diversas propriedades relacionadas s sries do grfico e
cor interior e da borda de cada srie.

Aba BackDrop

Configura os elementos de fundo e da borda do grfico. O elemento a ser
configurado selecionado na lista Property Name.

Aba Text

Atravs da lista Property Name podemos selecionar o ttulo, o rodap, ttulos dos
eixos X, Y ou de um segmento eixo Y e definir um nome para cada item, inclusive
definindo o alinhamento e a orientao do texto atravs do grupo Alignment e Orientation.

Aba Fonts

Permite definir a fonte, estilo, tamanho e efeitos de cor.

Alm destas propriedades temos as seguintes:

Row - especifica a linha corrente
RowCount - determina o nmero de seqncia de dados
RowLabel - define o rtulo de dados da linha corrente
Data - Permite a leitura e a atribuio dos valores de dados ao grfico
Column - define a coluna ativa
ColumnCount - define o nmero de colunas ativas
ColumnLabel - define a legenda para a coluna ativa
BorderStyle - define a borda do grfico
ChartData - permite atribuir valores s seqncias de dados a partir de uma matriz
(array) de duas dimenses.


Exemplo de Utilizao

Suponha que temos uma tabela que armazene as notas de um grupo de alunos.
Os dados na tabela so:

Nome Nota
Joo 5,0
Paulo 7,5
Maria 8,0
Lucas 2,0
Laura 10,0

Criaremos um grfico de colunas que representa a nota de cada aluno. Siga os
passos:

1- Adicione um controle MSChart ao formulrio.

2- Configure as seguintes propriedades do MSChart:

- RowCount = 5
- ColumnCount = 1

3- Adicione o seguinte cdigo:

Dim Con As New ADODB.Connection
Dim TbAlunos As New ADODB.Recordset
Dim StringConexao As String
Dim x As Integer

Private Sub Form_Load()
StringConexao = DSN=teste;Driver=OdbcJdbc;Dbname=C:\prog\Escola.gdb;
CHARSET=NONE;UID=SYSDBA;PWD=DKEBFJENHFCOBHGHLAIMNAAFICE
LEAEGDNMFNOGALAMHBBGCHFADNKCBPPGMANOGIEKENIOPHDIPBIECPL
LLCBIKEJKMJLPLIB"
Con.Open StringConexao
Dim ComandoSQL As String
ComandoSQL = "SELECT * FROM alunos order by acodigo"
TbAlunos.Open ComandoSQL, StringConexao, adOpenStatic
TbAlunos.MoveFirst
For x = 1 To 5
MSChart1.Row = x
MSChart1.RowLabel = TbAlunos!anome
MSChart1.Data = TbAlunos!anota
TbAlunos.MoveNext
Next x
End Sub


O resultado ser o seguinte:




32. DATA REPORT

Abra o projeto em questo. Em seguida, selecione o menu Project.

Selecione o comando Add Data Report para adicionar este componente ao
projeto.

Ainda no menu Project, selecione o comando Add Data Environment.

Se por acaso um dos comandos acima no estiver disponvel, use o comando
More ActiveX Designers... para adicionar o componente desejado.


Configurando o Ambiente de Dados (DataEnvironment)

Antes de trabalharmos com o Data Report ou qualquer outro componente que
acesse registros de uma base dados, necessrio abrir o banco de dados e as
respectivas tabelas ou consultas existentes neste banco de dados.

D um duplo clique no objeto DataEnvironment1 para abrir a janela do
DataEnvironment.



Para alterar as propriedades do DataEnvironment, ser usado a janela do Project
Explorer em conjunto com a janela Properties Windows.

Como o objeto DataEnvironment1 ser usado em diversas partes do projeto,
para facilitar sua utilizao, mudaremos a propriedade (Name) de DataEnvironment1
para deComercial. Para alterar a propriedade Name, d um clique no objeto
DataEnvironment1, em seguida, utilizando a janela de propriedades modifique a
propriedade name.



Definindo o Banco de Dados (atravs de conexo)



D um clique com o boto do mouse sobre o componente Connection1, em
seguida, selecione Properties na barra de Ferramentas.

Na tela que se segue, devemos configurar a string de conexo. Isto j foi feito no
item 20.3 Criando a string de conexo. Caso necessrio, veja novamente o item 20.3.


Definindo uma referncia para uma Tabela

Antes de prosseguirmos, interessante mudar a propriedade Name do
componente Connection1 para conComercial. Para tal, use a janela de propriedades do
Visual Basic.



No DataEnvironment, cada tabela ou consulta denominada de Command. Para
incluir um command, d um clique com o boto direito sobre o objeto connection (que
no exemplo se chama conComercial), em seguida selecione a opo Add Command.



Aps adicionar o Command, o passo seguinte ser alterar suas propriedades.
Para tal, d um clique com o boto direito sobre o Command1, em seguida selecione a
opo Properties.




Na guia General da janela de propriedades, dever ser informado o nome do
command, a conexo que contm o banco de dados que possui a tabela ou consulta
desejada e a fonte de dados (os mais usados so Consultas e Tabelas).
O campo Command Name deve ser preenchido de forma coerente com a tabela
ou consulta selecionada.




No exemplo abaixo, foi informado como Command Name comProdutos, porque
este command ser uma referncia para a tabela Produtos (evite usar nomes pouco
significativos). Aps fazer isso, d um clique no boto OK.




Se correr tudo bem, ser acrescentado um novo objeto command chamado
comProdutos subordinado a conexo conComercial.





Definindo uma referncia para vrias Tabelas

Para usarmos vrias tabelas em uma consulta, a forma mais prtica e simples
atravs de uma sentena SQL. Para tal, usaremos o Access para criarmos uma consulta,
em seguida, usaremos a sentena SQL gerada por ele dentro do Visual Basic.

Aps executar o Microsoft Access, abra o Banco de Dados que contem as
tabelas que sero usadas no Command.

Como iremos criar uma consulta, selecione a guia correspondente a esta opo no
Access (observe que a figura abaixo relativa a verso 97 deste aplicativo e no a 2000).



Aps selecionar a guia Consultas, d um clique no boto Novo, para criar
uma nova consulta. Ser mostra a janela do assistente, selecione a opo Assistente
de Consulta Simples. Em seguida, d um clique no boto OK.









Utilize a caixa de combinao Tabelas/
Consultas:, para selecionar o nome da
tabela que possui os campos que sero
usados na consulta.



Aps selecionar o nome da tabela, o prximo passo selecionar na caixa de
listagem Campos disponveis, o nome do campo que ser usado na consulta. D um
clique no boto > para adicionar o campo cNome a caixa de listagem Campos
selecionados. O boto >> usado para adicionar todos os campos da tabela
selecionada.
Os botes < e << so usados para remover algum campo adicionado
erroneamente ou no mais necessrio.



Aps selecionados os campos desejados da tabela de Clientes, selecione na
caixa de combinao Tabelas/ Consultas:, o nome da prxima tabela. Feito isto,
selecione o nome dos campos e assim sucessivamente at que todos os campos
desejados estejam selecionados.



D um clique no boto Concluir para finalizar a criao de sua consulta. Ao
fazer isto, a consulta ser automaticamente salva e executada. A execuo nada mais
que a apresentao do resultado.



A apresentao do resultado da consulta, um sinal da que a mesma est correta.
Porm, como o que interessa a sentena SQL correspondente, vamos mudar o modo
de exibio para Modo SQL.



O comando SQL correspondente ser apresentado conforme abaixo. Basta agora
copiarmos para a rea de transferncia, em seguida, colar no Visual Basic.



O prximo passo ser adicionar um novo Command no DataEnvironment, para
tal, d um clique com o boto direito do mouse sobre a conexo conComercial, em
seguida, selecione a opo Add Command.



Aps adicionar o novo Command, o prximo ser a alterao de algumas
propriedades. D um clique com o boto direito do mouse sobre o command criado.




Observe que como estamos usando uma sentena SQL, a fonte dos dados
(Source of Data) dever ser a opo SQL Statemend. Coloque o comando SQL criado
no access conforme mostrado na figura anterior. Para finalizar d um clique no boto OK.
Aps feito isto, o command dever possuir as caractersticas mostradas abaixo:





Utilizando Sub Commands

comum a elaborao de relatrios ou consultas, onde dois ou mais commands
esto relacionados entre s. Isso bastante til quando se deseja agrupar os dados em
funo de um determinado registro.
S possvel usar um sub command quando ambos os commands tem um campo
em comum. No exemplo abaixo, possvel relacionar comEntradas com
comItens_Entradas, atravs do campo eID.






Ambas as sentenas SQL foram criadas no
Access usando os passos descritos
anteriormente.

Para relacionar um command com o outro,
ou deixar um command subordinado ao
outro, necessrio alterar as propriedades
do command filho. Ou seja, aquele que tem
dependncia de existncia.



Selecione a guia Relation em seguida marque a opo Relate to Parent
Command Object.
Indique na caixa de combinao Parent Command o command pai.
Finalmente selecione os campos comuns aos commands em seguida d um clique
no boto Add. Feito isso d um clique no boto OK.



Os comands comEntradas e comItens_Entrada devero ficar com a aparncia
mostrada abaixo:



Criando um relatrio a partir de um Command Simples


Primeiro Passo: d um clique com o boto direito do mouse sobre a janela do
Project Explorer. No menu de atalho, selecione o comando Add, em seguida, a opo
Data Report.


Segundo Passo: altere as propriedades do objeto Data Report (no caso da figura,
DataReport1) de forma que ele fique ligado ao Command do item 7.3.2. Para cada
DataReport (relatrio), dever ser definido um nico Command.

(Name): rptProdutos
Caption: Relatrio de Produtos
DataSource: deComercial
DataMember: comProdutos



Terceiro Passo: d um duplo clique no cone do objeto rptProdutos (antigo
DataReport1) para que seja mostrado o formulrio correspondente.

Quarto Passo: d um clique com o boto direito do mouse sobre o formulrio
aberto no passo anterior, em seguida selecione o comando Retrieve Structure.




Todos os objetos desenhados no relatrio sero apagados aps a execuo deste
comando. Por questes de segurana, solicitada a confirmao do usurio. D um
clique no boto Sim. As sees do relatrio sero definidas de acordo com o respectivo
Command.






Alterando as caractersticas do Relatrio

Como no se pode usar os componentes da caixa de ferramentas padro para
desenhar um relatrio, o DataReport possui seus prprios componentes. Observe que os
componentes da caixa de ferramentas General ficam indisponveis se o DataReport
estiver selecionado, da mesma forma que os componentes da caixa de ferramentas
DataReport ficam indisponveis se o Form estiver selecionado.
O RptLabel, RptTextBox, RptImage, RptLine e RptShape so os equivalentes ao
existentes na caixa general, aplicando-se neles todos os conceitos vistos anteriormente.
O RptFunction um caso que ser tratado a parte.



Na seo Page Header dever ser definido o cabealho da pgina, ou seja, o
texto que ser impresso no topo de todas as pginas do relatrio. Na figura abaixo, um
exemplo de um cabealho simples desenhado com o RptLabel.



Para a seo Detail (comProdutos_Detail), devero ser arrastados todos os
campos do Command comProdutos que desejamos que sejam impressos no relatrio.
Em Page Header dever ser definido o cabealho da pgina, ou seja, o texto que dever
ser impresso no topo de todas as pginas. Usando o objeto RptLabel, desenhe 3.



Somente ser permitido arrastar os campos do Command especificado na
propriedade DataMember. Sendo assim, como foi especificado o command comProdutos,
somente podemos arrastar os campos existentes nele.



Para cada campo arrastado da janela do DataEnvironment at a seo Detail so
colados um RptLabel e um RptTextBox.
Se voc ainda no tiver rotulado o campo em questo, arraste o RptLabel para a
seo Page Header em seguida modifique suas propriedades. Observe que ao ser
colado um campo na seo Detail, os objetos RptLabel e RptTextBox vem selecionados,
desmarque o objeto RptTextBox antes de mover o objeto RptLabel.




Alignment: 1-RptJustifyRight
Caption: Cdigo
DataFormat: General
Font: Negrito

importante observar que campos numricos devem ser alinhados sempre
direita (right), enquanto campos alfanumericos devem ser alinhados a esquerda (left). A
propriedade DataFormat usada para formatar a apresentao dos dados no relatrio.
Aps alterar as propriedades do campo pCdigo, repita o procedimento para os campos
pDescrio e pEstoque_Atual.



importante observar as seguintes caracterstica do DataReport:
- Os objetos RptLabel, RptTextBox e todos os demais, ao serem
movimentados atravs do mouse, observam o posicionamento do Grid (caixa
retangular existente em segundo plano).
- Para colocar um objeto em um determinada posio do relatrio, faa-o
atravs da alterao das propriedades Left (posio horizontal) e Top
(posio vertical).
- Use as propriedades Height e Width para modificar respectivamente a altura
e o comprimento de um determinado componente.
- Em hiptese alguma modifique o comprimento e a altura do relatrio. Se aps
alterar o comprimento ou a altura, o relatrio ficar maior que as dimenses do
formulrio selecionado, ocorrer um erro durante a impresso. Se o fizer,
faa-o aos poucos e teste a impresso (no vdeo a medida que for fazendo).
- No DataReport existem diversas sees. Antes de alterar quaisquer
propriedades, verifique antes na janela de propriedades se est atualmente
selecionado o objeto desejado.


Incluindo nmero de pgina, data e hora ao relatrio

Para incluir o nmero da pgina atual, total de pginas, data atual e hora. D um
clique com o boto direito do mouse sobre a seo Page Header do relatrio, em seguida,
selecione a opo Insert Control.




Fazendo a chamada do Relatrio

A maneira mais simples de chamar um relatrio criado no Data Report, atravs
do mtodo Show. A chamada deve ser digitada dentro de um boto de comando,
conforme mostrado no exemplo abaixo.

Private Sub cmdImprimir_Click()
rptProdutos.Show
End Sub




Filtrando os dados mostrados no relatrio

O mtodo Filter uma tima alternativa para filtrar os dados apresentados em
um determinado relatrio criado no DataReport. Ele dever ser usado antes do mtodo
show, conforme exemplos abaixo:

deComercial.rscomProdutos.Filter = "pCodigo=1"
rptProdutos.Show

ou

deComercial.rscomProdutos.Filter = "pCodigo=" & TxtCodigo_Produto
rptProdutos.Show


deComercial.rscomProdutos.Filter = "pDescricao= Polvilho Azedo 1 "
rptProdutos.Show

ou

deComercial.rscomProdutos.Filter = "pDescricao= " & TxtDescricao & " "
rptProdutos.Show

Se por acaso o campo usado no filtro for uma data, esta dever delimitada por
duas tralhas (e.g. vData_Emissao=#2001-08-31#).


Criando um relatrio a partir de um Sub Command

As mudanas em relao a um relatrio que usa um nico Command so poucas.
Entretanto, vamos detalhar as diferenas para que seja mais fcil compreende-la.

1 Mudana: deve ser indicado como DataMember o nome do command pai, a partir
dele, o Data Report recupera os demais dados existentes no command filho.

(Name): rptEntradas_Periodo
Caption: Relatrio de Entradas
DataSource: deComercial
DataMember: comEntradas

2 Mudana: o uso do comando Retrieve Structure, deixa de ser opcional e passa a ser
obrigatrio. Observe que pelo fato do Command possuir um Sub Command, a partir de
agora o relatrio tem agora as sees Group Header e Group Footer. Para visualiza-
las, aumente a altura do formulrio.





33. PACKAGE & DEPLOYMENT WIZARD

Veja como gerar os discos de distribuio e o programa de instalao para a sua
aplicao usando o PACKAGE & DEPLOYMENT WIZARD.

A questo da distribuio

Voc acabou de desenvolver uma aplicao em Visual Basic, testou, depurou e,
finalmente, est pronto para distribu-la aos usurios finais.
Geralmente tais usurios no possuem o Visual Basic instalado em suas mquinas
(voc deve sempre considerar essa situao como a padro).
Voc ter ento que distribuir com sua aplicao uma srie de arquivos DLL, e, se
sua aplicao usar controles personalizados, ter tambm que distribuir os arquivos de
controle VBX/OCX que utiliza.
Para isto, ou voc cria um programa de instalao com o Wizard, que determina
os arquivos que voc precisa distribuir, ou tenta determinar por si mesmo quais os
arquivos precisam ser distribudos.
O Package & Deployment Wizard fornecido com o Visual Basic e voc poder
us-lo para criar um programa que instalar sua aplicao na mquina do usurio.

As tarefas bsicas que o Package & Deployment Wizard faz so:

Construir o arquivo executvel (EXE) do seu projeto.
Criar um programa de instalao para a sua aplicao.
Determinar os arquivos necessrios para a aplicao.
Compactar os arquivos do programa, copi-los e dividi-los em discos para distribuio
(Disquete, CD-ROM, Disco Rgido e Redes).
Criar um grupo de programas e um cone no sistema do usurio.


Gerando o assistente de Instalao e os discos para distribuio

Vamos descrever passo a passo o processo de criao do programa de instalao
e da gerao dos discos de distribuio para um projeto: agenda.vbp.
Vamos supor que a distribuio ser feita em discos de 3 1/2 (1.44) e iremos usar
o Package & Deployment Wizard. Ento vamos l:

1 - Inicie o Package & Deployment Wizard, clicando em Iniciar > Programas > Microsoft
Visual Studio 6.0 > Microsoft Visual Studio 6.0 Tools > Package & Deployment Wizard.
Surgir a tela abaixo:



2- Nesta tela, clicamos no boto Browse para selecionar o projeto. Em seguida, clicamos
em Package.

3- Caso o seu projeto ainda no tenha sido compilado, aparecer uma janela solicitando a
compilao. Nela, devemos clicar em Compile. Em seguida, aparecer a seguinte tela:


4- Nesta tela, basta selecionar Standard Setup Package e clicar em Next. Surge a tela
seguinte:



5- Aqui selecionamos a pasta onde os arquivos de instalao sero gravados. Ento
clicamos em Next e:



6- Clicamos no boto Add para adicionar arquivos que sero distribudos junto com a
aplicao, como por exemplo, um arquivo de banco de dados. Clicando em Next:



7- Escolhemos se a instalao ser distribuda em um nico arquivo (HD, rede, CD) ou
em vrios arquivos (disquete), podendo especificar o tamanho. Clicando em Next:



8- Especificamos um nome para o programa de instalao. Next:



9- Definimos o local onde os cones aparecero no Menu Iniciar.

10- A partir da, basta clicar em Next at finalizar o assistente clicando em Finish.

Você também pode gostar