Visual - Basic Com BD Firebird

Fazer download em pdf
Fazer download em pdf
Você está na página 1de 72

ADO

Ling. de Programação
Prof.: Renata Rocha

MICROSOFT VISUAL BASIC

1. A APLICAÇÃO TRADICIONAL E A APLICAÇÃO ORIENTADA A OBJETOS E


DIRIGIDA A EVENTOS

Em uma aplicação tradicional ou programada de forma procedural, a aplicação por


si só controla que porções do código serão executadas. A execução começa na primeira
linha de código e segue um caminho pré-definido através de toda a aplicação, chamando
subrotinas conforme for sendo necessário.
Em uma aplicação controlada por eventos ou event-driven, uma ação do usuário
ou do sistema ativa um procedimento associado a este evento. Assim a ordem através do
qual o seu Código de programa é executado depende de quais eventos ocorram. Estes
eventos dependem das ações tomadas pelo usuário.

2. OBJETOS, MÉTODOS E EVENTOS

Objetos são coisas definidas por CLASSES e que possuem Propriedades,


Métodos e Eventos. Uma janela, um botão e um banco de dados são objetos. Mas para
entender bem o que é um objeto ainda é preciso definir propriedades, métodos e eventos.
Comecemos pelas Classes. Uma janela é muito diferente de um botão, mas os
dois são objetos. Isso acontece porque eles são definidos por Classes diferentes. Classes
definem um objeto a grosso modo. Definem suas propriedades, seus métodos e seus
eventos. Classes são os moldes dos objetos.
Um botão pode ser diferente do outro (maior ou menor, com uma legenda
diferente...). Mas como isso é possível se eles pertencem à mesma classe? Porque suas
propriedades são diferentes. As propriedades definem características mais específicas
dos objetos. Um botão tem, por exemplo, propriedades que determinam sua altura, sua
largura e sua legenda.
Um método é uma ação que age sobre um objeto. Por exemplo, se tivermos uma
lista, adicionamos ou removemos itens através de métodos. Ou ainda, se quiséssemos
mover um certo objeto pela tela, poderíamos usar um método.
Por fim, o evento. Digamos que em um certo programa, pressionamos um botão e
um Beep é emitido. Como o programa sabe quando apertamos o botão? Ele sabe porque
quando um objeto da classe botão é clicado, é gerado um evento. E é a esse evento que
está associado o código (comandos) que produzirá o Beep. Ocorrem também 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 não 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 método "PoeOvo" e um método
"Cacareja". E ela geraria eventos ao dormir ao acordar e ao ser ameaçada.
3. AMBIENTE DE PROGRAMAÇÃO DO VISUAL BASIC

Note que a janela Properties tem, logo abaixo da barra de título, uma "caixa de
seleção" 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 (Botão de Comando) – É um dos Controles mais utilizados em


programas do Windows, não apenas em VB. Sua função principal é executar comandos
quando clicado. O Evento Click é o mais importante para ele. As Propriedades Caption,
Name, Enabled são importantes entre outras. A propriedade Enabled indica se o botão
responderá ao Evento Click ou não.

PictureBox (Caixa de Imagem) - Este Controle é utilizado para exibir figuras nos
Formulários e também responde ao Evento Click. A propriedade Picture é a que abre a
caixa de diálogo para indicarmos o path do ícone ou da figura que queremos exibir.
Label (Etiqueta ou Rótulo) – Exibir um texto onde o usuário não possa alterar. Sua
propriedade principal é a Caption (que é o texto que o Controle exibirá). Outras
Propriedades de formatação do texto: FontName, FontBold, Alignment, etc.

TextBox (Caixa de Texto) – Exibir um texto onde o usuário possa editar. Sua
propriedade principal é o Text (que é o texto que o Controle contem). As Propriedades de
formatação do texto são idênticas ao Label.

CheckBox (Caixa de Verificação) – Útil quando necessitamos informar ao sistema


que determinadas informações são verdadeiras ou falsas. Em um mesmo Formulário
vários CheckBoxs podem assumir o valor verdadeiro ao mesmo tempo. Algumas
Propriedades: Visible, Enabled e Caption.

OptionButton (Botão de Opção ou botão de rádio) – Com este Controle somente


uma das opções 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 são utilizadas para identificar os itens da lista. Os
Métodos AddItem e RemoveItem são utilizados para adicionar e remover itens.

ComboBox (Caixa de Combinação) – Combinação de uma TextBox com uma


ListBox. Pode-se editar um texto na parte superior ou selecionar um item da lista.
Propriedades idênticas as da ListBox.

ScrollBar (Barra de Rolagem) Vertical e Horizontal - Estes controles assumem


valos máximos ou mínimos 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 posição
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 Geométricas) – Adiciona figuras geométricas aos Formulários. Com


a Propriedade Shape escolhemos o tipo de figura (forma). Outras Propriedades
BorderColor, BorderStyle e BackColor.

Line (Linha) – Adicionar linhas geométricas a formulários. Propriedades


BorderColor, BorderWidth, BorderStyle, X1, X2, Y1 e Y2.
Image (Imagem) – Exibe ícones ou figuras e também 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 informações 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 série de linhas e colunas representando Registros


e Campos de um objeto Recordset.

OLE – Incorpora objetos de outros aplicativos em um formulário.

5. PROPRIEDADES GERAIS

As principais propriedades dos objetos do Visual BASIC, que estão presentes em


praticamente todos os objetos, são as seguintes:

- Caption - Nos botões, form, e frames, altera o título 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 invisível caso esta propriedade esteja definida como
False.

- Font - Presente em objetos como textbox, label, botões command e botões


check e option. Permite que seja alterada a fonte de um objeto.

- Name - Altera o nome do objeto, para fins de referência durante a


programação.

- Forecolor, Backcolor - define a cor da fonte e do fundo de um textbox, um


label, ou outro objeto.
6. PROPRIEDADES DO FORMULÁRIO

- Height - altura do formulário


- Weight - largura do formulário
- Maxbutton - ativa ou desativa a presença do botão Maximizar
- Minbutton - ativa ou desativa presença do botão Minimizar
- Left - altera a distância do formulário a partir da extrema esquerda do vídeo
- Top - altera a distância do formulário a partir do topo do vídeo

7. EVENTOS MAIS COMUNS

O Visual BASIC apresenta alguns eventos que são usados freqüentemente, e se


apresentam na maior parte dos objetos. Abaixo segue uma relação dos principais e suas
respectivas funções.

- Click: É um evento que executa determinadas ações especificadas pelo


programador quando alguém clica sobre o objeto.

- Dblclick: Executa determinadas ações especificadas pelo programador quando


alguém clica duas vezes sobre algum objeto.

- Load: executa ações sempre que um formulário for carregado na memória.

- Gotfocus: quando um objeto, um botão 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,


são acionados determinados comandos.

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

8. VARIÁVEIS

Variáveis são áreas de memória utilizadas para armazenar dados


temporariamente. Digamos que você queira fazer uma Calculadora. Os números serão
armazenados em variáveis.
Uma variável é identificada por um nome. Este nome deve obedecer às seguintes
regras:
- Não pode haver repetição de nomes.
- O nome deve começar com uma letra.
- O nome não pode conter espaços, pontos, vírgulas e outros caracteres do tipo
!, $, %.
- Deve ter, no máximo, 255 caracteres.
Tipos de variáveis:

Data type Storage Range


size
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 4 bytes -3.402823E38 to -1.401298E-45 for negative
floating-point) values; 1.401298E-45 to 3.402823E38 for
positive values
Double (double-precision 8 bytes -1.79769313486232E308 to -
floating-point) 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 + 0 to approximately 2 billion
string
length
String (fixed-length) Length of 1 to approximately 65,400
string
Variant (with numbers) 16 bytes Any numeric value up to the range of a
Double
Variant (with characters) 22 bytes + Same range as for variable-length String
string
length

Declaração de variáveis:

Dim x as String

Dim matriz(9, 9) As Integer

Obs.: Quando você não declara uma variável, ela é considerada do tipo Variant.
Note que este tipo ocupa pelo menos 16 bytes de memória, bem mais que os outros. Mas,
será que faz muita diferença gastar 2, 4, 8 ou 16 bytes da memória? Hoje os
computadores têm “muita” memória. Tudo bem, em programas pequenos isto não será
uma diferença crucial, mas em um programa maior, com centenas de variáveis, isto pode
fazer a diferença. Além disto, devemos lembrar que o Windows pode trabalhar com vários
programas abertos ao mesmo tempo; e se seu programa for "gordo" poderá atrapalhar a
performance dos outros. Além disto, quanto menos memória ocupa um certo tipo de dado,
mais rapidamente ele é processado. Por isso, procure sempre usar o "menor" tipo de
dado possível. Mas lembre-se: se você ultrapassar o limite da variável acontecerá um
erro. (Exemplo: tente criar uma variável do tipo Byte e atribua a ela um valor maior que
255).

Conversão de tipos de variáveis

Função Descrição
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. INSTRUÇÕES DE FLUXO DE CONTROLE E INSTRUÇÕES 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 INSTRUÇÃO EXIT

A instrução Exit permite que você saia prematuramente de um bloco de instruções


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 FORMULÁRIO

A adição de novos formulários na sua aplicação é feita através do menu Project,


comando Add Form.

12. CONECTANDO FORMULÁRIOS

Comando Ação
Load form Carrega o formulário, mas o deixa invisível.
Form.Show [Modal] Mostra o formulário se ele estiver invisível. Se ele não
estiver carregado, então ele primeiro carrega o
formulário e depois o mostra. Modal define se o
formulário que fez a carga fica parado até a desativação
do novo formulário (1), ou se continua a sua execução
sem se importar com o próximo formulário (0).
Exemplos:
Form1.Show (0)
Form1.Show (1)
Unload form O formulário é descarregado da memória e a sua
execução é encerrada.

13. FORMULÁRIOS MDI

Para criar um formulário MDI, clique sobre o menu Project e escolha a opção Add
MDI Form. Um projeto do VB só pode possuir um formulário MDI. Para que os outros
formulários sejam abertos dentro do MDI, a propriedade MDIChild de cada um deles deve
ser definida como True.

14. FORMULÁRIOS SPLASH

O formulário Splash é aquela tela que aparece logo ao iniciar a aplicação e


desaparece em seguida, como se fosse uma tela de abertura/apresentação.
Para criar um formulário Splash, clique sobre o menu Project > Add Form e
escolha a opção Splash Screen.
Em seguida, defina uma aparência agradável 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.
Além disso, devemos adicionar um pequeno código de programação associado ao
evento Timer do objeto Timer.

Private Sub Timer1_Timer()


MDIForm1.Show
Unload Me
End Sub

No código acima, ao término dos 4 segundos, é mostrado o MDIForm, que


provavelmente é o formulário principal da aplicação, e em seguida o Splash é
descarregado.
Para que o Splash seja o primeiro formulário 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 formulário Splash na lista Startup Object.

15. CRIAÇÃO DE MENUS

Para a criação de um Menu devemos ir ao menu Tools – Menu Editor.

1) Começamos digitando o Título (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 referência no código.
3) Os outros itens não são obrigatórios.
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 aparecerão três pontinhos à
esquerda do título 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 opção Microsoft Windows Common Controls 5.0. Surgirão alguns componentes
na Toolbox, dentre eles o Toolbar e o ImageList, que utilizaremos na criação da barra de
ferramentas. Siga os passos:
- Desenhe no seu formulário um objeto Toolbar e um objeto ImageList.
- No objeto ImageList, serão armazenadas as imagens utilizadas na Toolbar.
Clique sobre o ImageList com o botão direito e escolha Properties.
- Na janela que se abre, escolha a guia Images.
- Clique no botão 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 após ter adicionado todas as imagens.
- Para adicionar botões à Toolbar, clique sobre ela com o botão direito e escolha
Properties.
- Na janela que se abre, escolha a guia Buttons.

- Clique em Insert Button para adicionar botões.


- Para cada botão adicionado defina as propriedades Image (número da imagem
no ImageList) e ToolTipText (texto informativo mostrado quando se move o
mouse sobre o botão).
- Após inserir e configurar todos os botões, clique em OK.

Em linha de código, para selecionar qual botão foi clicado, use um código
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 botão clicado abre um formulário.

17. ESCOPO (OS NÍVEIS DE UM PROGRAMA)

Private Sub txtNome_Change()


Dim Nome As String
Nome = txtNome.Text ‘A variável Nome recebe a propriedade Text da
End Sub ‘txtNome

Quando declaramos uma variável com um Dim, dentro de um subprocedimento


(como no exemplo acima), a variável só existe dentro daquele subprocedimento. Ela não
está disponível para outras "Subs". Além disto, quando a Sub que a continha acaba de
ser executada, o valor da variável se perde, mesmo para futuras "chamadas" da mesma
Sub.

Uma variável declarada na seção Declarations (General) de um Form está


disponível para todas as suas Subs. Porém, se usarmos dois formulários, a variável
declarada em um deles não estará disponível para o outro. A solução é declarar a variável
em um nível "mais abrangente": o módulo. Para criar um módulo, acesse o menu Project
> Add Module. Então, declare a variável da seguinte maneira:

Public Nome as String

Note que declaramos usando "Public", que informa ao VB que esta variável será
"pública", ou seja, disponível para todas as Subs de todos os Forms deste programa.

18. A LINGUAGEM SQL

A linguagem SQL(Structured Query Language) é uma linguagem de alto nível para


manipulação de dados dentro do modelo relacional. Seu objetivo é fornecer uma interface
de alto nível ao usuário. É uma linguagem não procedural, e,não cabe ao usuário definir
como o gerenciador de banco de dados executará uma tarefa, mas somente o ele que
deve fazer.
Uma instrução SQL consiste em três partes:
• As declarações de parâmetros
• A instrução manipulativa
• As declarações de opções

Vejamos na tabela abaixo um resumo das cláusulas manipulativas e suas finalidades:

Instrução Função
Obtém um grupo de registros e insere os registros em um dynaset ou em
SELECT
uma tabela.
UPDATE Define os valores dos campos de uma tabela em uma atualização.
DELETE
Remove registros de uma tabela.
FROM
INSERT INTO Acrescenta um grupo de registros a uma tabela.

Vejamos alguns exemplos da instrução 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 parâmetro (*) indicando
todos os campos da tabela indicada.

SELECT Empregados.* FROM Empregados

3) Conta o número de registros que têm uma entrada no campo "Código postal" e coloca
o título Contagem no topo da coluna.

SELECT Count([Código 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 começam pela letra S.

SELECT [Primeiro nome], [Sobrenome] FROM Empregados WHERE [Sobrenome] Like


'S*'

Observações:

FROM – Indica as tabelas utilizadas como fonte de dados.

WHERE – Especifica as condições que os registros devem satisfazer para compor o


subconjunto de dados.
19. BANCOS DE DADOS FIREBIRD

19.1. Obtendo o Firebird

A última versão do Firebird pode ser baixada gratuitamente no site oficial, através de
seu browser preferido acesse o endereço http://www.firebirdsql.com/.

Em seguida, selecione a opção download.

Ao contrário de muitos sistemas de gerenciamento de bancos de dados que executam


apenas na plataforma Windows, o Firebird é compatível 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 distribuições do Firebird terminadas com a string “-RCn” não são versões
finais, por isso, prefira usar a última release do produto que é muito mais estável, e
não, uma versão beta que ainda não 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 botão
“Sim” para iniciar a instalação.

c) Antes de clicar no botão “Next >” para continuar a instalação, feche todos os
aplicativos abertos.

d) Será apresentada a “License Agreement”, selecione o botão de opção “I


accept the agreement” para indicar ao programa que você concorda com a
licença, em seguida, clique no botão “Next >” para continuar a instalação.

e) Na caixa de diálogo “Information” serão apresentadas informações


complementares sobre a instalação do Firebird. Clique no botão “Next >” para
continuar.

f) No caixa de diálogo “Select Destination Directory” será possível informar o


local onde o Firebird será instalado. É recomendável não modificar a localização
padrão que é “\Arquivos de programas\Firebird”. Clique no botão “Next
>” para continuar.
g) O próximo passo é informar os componentes a serem instalados, selecione a
opção “Full installation of Server and development tools”, em seguida,
clique no botão “Next >” para continuar.

h) Na caixa de diálogo “Select Start Menu Folder” deverá ser informado o nome
da pasta do menu iniciar onde os ícones do programa serão criados. Deixe o
nome padrão da pasta que é “Firebird”. Dê um clique no botão “Next >” para
continuar.

i) Na caixa de diálogo “Select Additional Tasks” não altere nenhuma das


opções, simplesmente, dê um clique no no botão “Next >” para continuar.

Dica: as distribuições do Firebird quando instaladas no Windows 95 e 98 são


executadas como um aplicativo. A partir do Windows 2000 como um serviço.

j) Na caixa de diálogo “Ready to install” clique no botão “Install” para iniciar a


copia dos arquivos para o disco rígido de seu computador.
k) Se for apresentada outra caixa de diálogo, clique no botão “Next” ou “Ok”
para continuar a instalação.
19.3. Registrando um novo Servidor no Firebird

a) Após executar o IB Console, dê um clique com o botão direito do mouse sobre


o objeto InterBase Server, em seguida selecione a opção “Register ...” do
menu de atalho.

b) Selecione a opção “Remote Server”, em seguida, preenche todos parâmetros


necessários ao registro e conexão de um novo servidor no IB Console.
Nome do Servidor: número IP da
máquina local (e.g. 127.0.0.1), ou
então, o número IP de uma
máquina remota da rede (e.g.
192.168.0.1).
Protocolo da Rede: TCP/IP.
Apelido do Servidor:
normalmente o nome da
instituição, departamento ou setor
onde o computador que possui o
banco de dados esta armazenado
(e.g. Laboratorio3).
Descrição: informação
complementar

Nome do Usuário: SYSDBA


Senha: masterkey

Não se esqueça de deixar


selecionada a caixa de checagem
“Save Alias Information”.

c) Após preencher todos os parâmetros obrigatórios, dê um clique com o botão


esquerdo do mouse no botão OK.

19.4. Fechando a conexão de um Servidor no Firebird

a) Estando no IB Console, dê um clique com o botão direito do mouse sobre o


objeto DSI, em seguida selecione a opção “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 conexão do servidor selecionado?”. Dê um
clique no botão “Sim”.

19.5. Abrindo a conexão de um Servidor no Firebird

a) Estando no IB Console, dê um clique com o botão direito do mouse sobre o


objeto DSI, em seguida selecione a opção “Login...” do menu de atalho.
b) Será solicitada a informação de Login no servidor. Informe para os campos
“Nome do Usuário” e “Senha”, respectivamente, “sysdba” e “masterkey”.
Em seguida, dê um clique no botão “Login”.

19.6. Criando um novo Banco de Dados

a) Estando no IB Console, dê um clique com o botão direito do mouse sobre o


objeto Database, em seguida selecione a opção “Create Database...” do
menu de atalho.
b) Durante o processo de criação de um novo Banco de Dados é obrigatório o
preenchimento dos seguintes campos: “Filename(s)”, “Size (Pages)” e
“Alias”. É interessante preencher o campo “Size (Pages)” com o valor padrão
“4096” e deixar selecionada a caixa de checagem “Register Database”.
Após preenchê-los dê um clique no botão OK.

O ícone do objeto de dados correspondente ao banco de dados “Hotel” será incluído


dentro do objeto Databases do Servidor DSI.
19.7. Verificando onde foi gravado o novo Banco de Dados

a) Dê um clique com o botão direito do mouse sobre o ícone do servidor DSI,


em seguida, selecione a opção “Properties...”.

b) Na caixa de diálogo “Server Properties” selecione a guia “General” e verifique


o conteúdo do campo “Attached Databases”.
19.8. Trabalhando com Tabelas

Como criar uma tabela e definir o campo que é a chave primária

a) Selecione o nome do Banco de Dados onde será criada a tabela clicando com o
botão 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 informações
sobre o nome da tabela; o nome, o tipo de dados e se o conteúdo pode ser nulo
para cada campo; e o nome do campo escolhido para ser chave primária.

c) Ao terminar de digitar o comando no Interactive SQL execute-o pressionando


Ctrl+E ou então clicando sobre o ícone da barra de ferramentas mostrada na
ferramenta abaixo:

d) Se o comando digitado não possuir nenhum erro de sintaxe e for executado


corretamente, a tela do Interactive SQL será apagada e não 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 primária foi criada

a) Com o botão esquerdo do mouse clique na opção “Windows” do menu do


Interactive SQL, selecione na caixa de listagem da caixa de diálogo do Active
Windows o “IB Console”, em seguida, clique no botão 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 dependência de identificação

Suponha que você viajou para uma cidade onde pretende passar parte de suas férias,
chegando lá decidiu se hospedar em um Hotel.
Como se trata de um novo cliente o atendente somente conseguirá registrar sua
hospedagem após cadastrá-lo como novo hospede.
Dizemos neste caso que a tabela “Hospedagens” possui dependência de identificação
da tabela “Hospedes”, ou seja, somente será possível cadastrar hospedagens para
hospedes anteriormente cadastrados.
O procedimento para criação da tabela “Hospedagens” será acrescido da criação 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. CONEXÃO DO BANCO DE DADOS FIREBIRD COM O VISUAL BASIC

20.1. Instalação do Driver ODBC

No VB, para abrir um banco de dados Firebird, é necessário 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 Referência ao ADO

No Visual Basic, para incluir a referência ao ADO, clique no menu Project >
References. Na lista relacionada marque a opção: Microsoft ActiveX Data Objects 2.x
Library.

20.3. Criando a String de Conexão

A string de conexão é um texto com informações necessárias à conexão. Para


criá-la, inclua em seu projeto o componente “Data Environment” executando uma das
seguintes seqüências: Menu Project  Add Data Environment, ou então, Menu Project 
More Active X Designers  Data Environment.
Será mostrada a janela do “Data Environment”. Dê um clique com o botão direito
do mouse sobre o item “Connection1”, em seguida, selecione a opção “Properties...” do
menu de atalho.
Na próxima caixa de diálogo deverá ser selecionado o “provedor de acesso” para o
banco de dados que a conexão abrirá. Selecione a opção Microsoft OLE DB Provider
for ODBC Drivers.

Clique em Next.
Na tela seguinte, selecione a opção Use connection string e clique no botão Build.

Selecione a guia Machine Data Source e clique em New.


Na próxima tela, clique em Avançar.

Selecione a opção Firebird/Interbase(r) driver e clique em Avançar, depois em


Concluir.

Na tela que se segue, deveremos dar um nome à fonte de dados criada (DSN).
Também 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:

Após efetuar todas as configurações 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 conexão, conforme mostrado abaixo:


Selecione a string de conexão e copie-a utilizando CTRL+C.
A string de conexão também pode ser copiada mais tarde. Para encontrá-la, clique
com o botão direito sobre Connection1 e selecione Properties. Em seguida, escolha a
guia Connection.

21. DEFININDO AS VARIÁVEIS DO PROGRAMA

As variáveis que representarão o banco de dados e a tabela deverão ser


declaradas dentro da seção “General/Declarations” do formulário atual.
É importante ainda declarar uma variável onde será armazenada a string de
conexão usada para abrir o banco de dados.
22. COMANDOS PARA ABERTURA DO BANCO DE DADOS

Como a string de conexão será utilizada em diversos eventos do formulário, é


interessante que ela seja armazenada em uma variável para facilitar a sua reutilização,
poupando digitação desnecessária.

23. DESENHANDO A INTERFACE DO PROGRAMA

Antes de programar os demais eventos do formulário é necessário desenhar a


interface do programa.
Para este exemplo, levaremos em consideração que o formulário “FrmCli” possui o
layout mostrado abaixo:

24. PROGRAMANDO OS EVENTOS

24.1. Consulta da Tabela

Sempre que o usuário digitar o código de um cliente que já está cadastrado no


banco de dados, o programa deverá mostrar os dados deste cliente. Abaixo a lógica
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. Exclusão de Registro

Antes de excluir o registro é interessante solicitar do usuário a confirmação da


operação. O exemplo do código 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. MÉTODOS DE MOVIMENTAÇÃO

Os métodos de movimentação permitem a passagem de um registro para outro no


interior dos recordsets, e alteram a posição do ponteiro do registro ao passar de um
registro ativo para outro registro. Você pode usar os métodos de movimentação sobre
quaisquer recordsets. Vejamos a seguir os métodos de movimentação:

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 não
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 não houver registro anterior, você está no primeiro registro, o flag de início de
arquivo BOF será ativado.
MoveLast - Movimenta o ponteiro do registro ativo para o último registro do recordset
aberto.

26. VALIDAÇÃO DE CAMPOS

Validação do conteúdo de um textbox durante a digitação

No código abaixo, temos a validação para um campo data. Nesta caixa de texto só
será possível digitar números, Backspace e a barra (/). Note que 47 corresponde ao
código 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 próximo código, temos a validação para um campo moeda. Nesta caixa de


texto só será possível digitar números, Backspace e a vírgula (,). Note que 44
corresponde ao código ASCII da vírgula.

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 códigos 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 não suportados pelo Windows.


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

Validação de datas e valores numéricos após a digitação

If Not IsDate(txtdata.Text) Then


MsgBox ("Data inválida!")
txtdata.SetFocus
Exit Sub
End If
If Not IsNumeric(txtvalor.Text) Then
MsgBox ("Valor inválido!")
txtvalor.SetFocus
Exit Sub
End If

27. DataList

A caixa de listagem vinculada aos dados – Data List – tem função idêntica à caixa
de listagem – ListBox, a qual seja, apresentar ao usuário uma lista de opções. A principal
diferença consiste no fato de a caixa de listagem vinculada aos dados buscar as
informações em um Recordset, enquanto que a Caixa de Listagem, obtêm as
informações através de uma série de instruções AddItem.

Vejamos como utilizar o controle DataList no roteiro a seguir:

1- Clique no menu Project > Components e escolha a opção Microsoft Data List Controls
6.0 (OLEDB). Selecione também a opção Microsoft ADO Data Control 6.0 (OLEDB).

2- Em um formulário, insira o controle Adodc (ADO Data Control) e configure as


propriedades:

- Name – Nome do controle (o nome padrão é Adodc1).


- ConnectionString – String de conexão. Dados necessários para efetuar a
conexão com o banco de dados (já citada anteriormente). Copie a string de
conexão do Data Environment.
- RecordSource – Clique no botão 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 contém as informações 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 opção Microsoft DataList Controls
6.0 (OLEDB).

2- Em um formulário, insira o controle Adodc (ADO Data Control) e configure as


propriedades:

- Name – Nome do controle (o nome padrão é Adodc1).


- ConnectionString – String de conexão. Dados necessários para efetuar a
conexão com o banco de dados (já citada anteriormente). Copie a string de
conexão do Data Environment.
- RecordSource – Clique no botão 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 contém as informações 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 vários
registros ao mesmo tempo.
O seu primo pobre no VB seria o controle Grid. Enquanto o Grid precisa ser
configurado quase que totalmente via código, para usar o DataGrid basta arrastar o ícone
do controle para o seu formulário e definir a propriedade DataSource para identificar o
controle de dados que contém os dados que você quer exibir, e pronto, a grade exibe
todos os campos dos registros do recordset.

Exemplo de Utilização e Configuração

Suponha que temos a seguinte tabela com os seguintes dados:

Empregado

Nome Telefone
João 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 sentenças


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 opção Microsoft DataGrid Control
6.0 (OLEDB).

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

3- Defina a seguir as propriedades:

- Name – Nome do controle (o nome padrão é Adodc1).


- Visible (False) – para que o objeto Adodc não apareça durante a execução do
programa
- ConnectionString – String de conexão. Dados necessários para efetuar a
conexão com o banco de dados (já citada anteriormente). Copie a string de
conexão do Data Environment.
- RecordSource – Clique no botão 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 edição, inclusão e exclusão de registros na grade você deve definir como
False as propriedades AllowAddNew, AllowUpdate e AllowDelete. Isto pode ser feito
através 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 formulário, um TextBox e um CommandButton.


Para completar o nosso exemplo, falta o código para a execução da pesquisa. No
evento Click do Command1, acrescente o código 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 execução é mostrado nas telas abaixo:


30. MASKED EDIT
Para utilizar um controle MaskedEdit, devemos, inicialmente, clicar no menu
Project > Components e escolher a opção Microsoft Masked Edit Control 6.0. Isto fará
com que ele seja incluído na Toolbox do VB.
Para configurar o MaskedEdit, clique sobre ele com o botão direito e escolha
Properties. Surge a tela seguinte:
Nesta tela, basta definir a máscara (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 máscaras:

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

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

Obs.1: Para limpar o conteúdo de um MaskedEdit, é preciso atribuir a ele o formato da


máscara. Exemplos:

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

Obs.2: Para atribuir uma data a um MaskedEdit, é preciso antes formatá-la usando a
função Format. Exemplo:

MaskEdBox4.Text = Format(Date, "dd/mm/yyyy")


31. CRIAÇÃO DE GRÁFICOS UTILIZANDO O CONTROLE MSCHART

Para construir gráficos em sua aplicação você deve usar o controle gráfico do VB,
o MSChart.
O MSChart permite apresentar seus dados em forma de gráfico como uma planilha
do Excel (linhas e colunas); gráficos tridimensionais, gráficos 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 opção
Microsoft Chart Control 6.0 (OLEDB).
As figuras abaixo mostram a barra de ferramentas e a configuração inicial do
MSChart:

Agora, basta definir a fonte de dados que alimentará o gráfico, geralmente uma
tabela, e fazer a configuração do Controle MSChart.

Para abrir um diálogo de propriedades do controle MSChart, clique com o botão


direito do mouse sobre o mesmo, selecione a opção Properties e a janela para
configuração surge como mostrada na figura abaixo:
Cada aba permite configurar diversas propriedades utilizadas na confecção de um gráfico.

Utilização e Configuração

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

A configuração inicial do controle gráfico apresenta uma série de quatro barras em


cinco colunas com legendas R1 a R5. Esta seqüência de dados é definida pela
propriedade RowCount. A quantidade de colunas é definida pela propriedade
ColumnCount. Na figura acima alteramos RowCount para 2 e ColumnCount também 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 gráficos:

• Barra - Valores 0 e 1
• Linha - Valores 2 e 3
• Áreas - Valores 4, 5 , 6 e 7
• Combinação - Valores 8 e 9
• Torta - Valor 14
• XY - Valor 16
Aba Chart

Chart Type - Permite escolher o tipo de gráfico usado

Chart Options
Show Legend - Mostra a legenda no gráfico
Show Markers - Marcas sobre cada coluna do gráfico
Stack Series - Empilhar as colunas
Series em rows - Inverte apresentação, colunas em linhas

Aba Axis e Axis Grid

Existem diversas propriedades que permitem configurar os eixos de um gráfico


como:

Espessura e cor de linhas


Definição da escala - Valor Máximo e Mínimo
Divisão da Escala - Valor Maior e Menor

Aba Series e Series Color

Permitem configurar diversas propriedades relacionadas às séries do gráfico e à


cor interior e da borda de cada série.

Aba BackDrop

Configura os elementos de fundo e da borda do gráfico. O elemento a ser


configurado é selecionado na lista Property Name.

Aba Text

Através da lista Property Name podemos selecionar o título, o rodapé, títulos dos
eixos X, Y ou de um segmento eixo Y e definir um nome para cada item, inclusive
definindo o alinhamento e a orientação do texto através do grupo Alignment e Orientation.

Aba Fonts

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

Além destas propriedades temos as seguintes:

Row - especifica a linha corrente


RowCount - determina o número de seqüência de dados
RowLabel - define o rótulo de dados da linha corrente
Data - Permite a leitura e a atribuição dos valores de dados ao gráfico
Column - define a coluna ativa
ColumnCount - define o número de colunas ativas
ColumnLabel - define a legenda para a coluna ativa
BorderStyle - define a borda do gráfico
ChartData - permite atribuir valores às seqüências de dados a partir de uma matriz
(array) de duas dimensões.

Exemplo de Utilização

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

Nome Nota
João 5,0
Paulo 7,5
Maria 8,0
Lucas 2,0
Laura 10,0

Criaremos um gráfico de colunas que representa a nota de cada aluno. Siga os


passos:

1- Adicione um controle MSChart ao formulário.

2- Configure as seguintes propriedades do MSChart:

- RowCount = 5
- ColumnCount = 1

3- Adicione o seguinte código:

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 questão. 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 não estiver disponível, 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, é necessário 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 utilização, 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 (através de conexão)

Dê um clique com o botão do mouse sobre o componente Connection1, em


seguida, selecione Properties na barra de Ferramentas.

Na tela que se segue, devemos configurar a string de conexão. Isto já foi feito no
item 20.3 – Criando a string de conexão. Caso necessário, veja novamente o item 20.3.

Definindo uma referência 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 botão direito sobre o objeto connection (que
no exemplo se chama conComercial), em seguida selecione a opção Add Command.

Após adicionar o Command, o passo seguinte será alterar suas propriedades.


Para tal, dê um clique com o botão direito sobre o Command1, em seguida selecione a
opção Properties.
Na guia “General” da janela de propriedades, deverá ser informado o nome do
command, a conexão que contém o banco de dados que possui a tabela ou consulta
desejada e a fonte de dados (os mais usados são 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 referência para a tabela “Produtos” (evite usar nomes pouco
significativos). Após fazer isso, dê um clique no botão OK.

Se correr tudo bem, será acrescentado um novo objeto command chamado


“comProdutos” subordinado a conexão “conComercial”.
Definindo uma referência para várias Tabelas

Para usarmos várias tabelas em uma consulta, a forma mais prática e simples é
através de uma sentença SQL. Para tal, usaremos o Access para criarmos uma consulta,
em seguida, usaremos a sentença SQL gerada por ele dentro do Visual Basic.

Após executar o “Microsoft Access”, abra o Banco de Dados que contem as


tabelas que serão usadas no Command.

Como iremos criar uma consulta, selecione a guia correspondente a esta opção no
Access (observe que a figura abaixo é relativa a versão 97 deste aplicativo e não a 2000).

Após selecionar a guia “Consultas”, dê um clique no botão “Novo”, para criar


uma nova consulta. Será mostra a janela do assistente, selecione a opção “Assistente
de Consulta Simples”. Em seguida, dê um clique no botão OK.
Utilize a caixa de combinação “Tabelas/
Consultas:”, para selecionar o nome da
tabela que possui os campos que serão
usados na consulta.

Após selecionar o nome da tabela, o próximo passo é selecionar na caixa de


listagem “Campos disponíveis”, o nome do campo que será usado na consulta. Dê um
clique no botão “>” para adicionar o campo “cNome” a caixa de listagem “Campos
selecionados”. O botão “>>” é usado para adicionar todos os campos da tabela
selecionada.
Os botões “<” e “<<” são usados para remover algum campo adicionado
erroneamente ou não mais necessário.

Após selecionados os campos desejados da tabela de “Clientes”, selecione na


caixa de combinação “Tabelas/ Consultas:”, o nome da próxima tabela. Feito isto,
selecione o nome dos campos e assim sucessivamente até que todos os campos
desejados estejam selecionados.
Dê um clique no botão “Concluir” para finalizar a criação de sua consulta. Ao
fazer isto, a consulta será automaticamente salva e executada. A execução nada mais é
que a apresentação do resultado.

A apresentação do resultado da consulta, é um sinal da que a mesma está correta.


Porém, como o que interessa é a sentença SQL correspondente, vamos mudar o modo
de exibição para Modo SQL.

O comando SQL correspondente será apresentado conforme abaixo. Basta agora


copiarmos para a área de transferência, em seguida, colar no Visual Basic.
O próximo passo será adicionar um novo “Command” no DataEnvironment, para
tal, dê um clique com o botão direito do mouse sobre a conexão “conComercial”, em
seguida, selecione a opção Add Command.

Após adicionar o novo Command, o próximo será a alteração de algumas


propriedades. Dê um clique com o botão direito do mouse sobre o command criado.
Observe que como estamos usando uma sentença SQL, a fonte dos dados
(Source of Data) deverá ser a opção SQL Statemend. Coloque o comando SQL criado
no access conforme mostrado na figura anterior. Para finalizar dê um clique no botão OK.
Após feito isto, o command deverá possuir as características mostradas abaixo:

Utilizando Sub Commands

É comum a elaboração de relatórios ou consultas, onde dois ou mais commands


estão relacionados entre sí. Isso é bastante útil quando se deseja agrupar os dados em
função de um determinado registro.
Só é possível usar um sub command quando ambos os commands tem um campo
em comum. No exemplo abaixo, é possível relacionar “comEntradas” com
“comItens_Entradas”, através do campo eID.
Ambas as sentenças SQL foram criadas no
Access usando os passos descritos
anteriormente.

Para relacionar um command com o outro,


ou deixar um command subordinado ao
outro, é necessário alterar as propriedades
do command filho. Ou seja, aquele que tem
dependência de existência.

Selecione a guia “Relation” em seguida marque a opção “Relate to Parent


Command Object”.
Indique na caixa de combinação “Parent Command” o “command pai”.
Finalmente selecione os campos comuns aos commands em seguida dê um clique
no botão Add. Feito isso dê um clique no botão OK.

Os comands “comEntradas” e “comItens_Entrada” deverão ficar com a aparência


mostrada abaixo:
Criando um relatório a partir de um Command Simples

Primeiro Passo: dê um clique com o botão direito do mouse sobre a janela do


“Project Explorer”. No menu de atalho, selecione o comando Add, em seguida, a opção
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 (relatório), deverá ser definido um único Command.

(Name): rptProdutos
Caption: Relatório de Produtos
DataSource: deComercial
DataMember: comProdutos

Terceiro Passo: dê um duplo clique no ícone do objeto rptProdutos (antigo


DataReport1) para que seja mostrado o formulário correspondente.

Quarto Passo: dê um clique com o botão direito do mouse sobre o formulário


aberto no passo anterior, em seguida selecione o comando Retrieve Structure.
Todos os objetos desenhados no relatório serão apagados após a execução deste
comando. Por questões de segurança, é solicitada a confirmação do usuário. Dê um
clique no botão Sim. As seções do relatório serão definidas de acordo com o respectivo
Command.
Alterando as características do Relatório

Como não se pode usar os componentes da caixa de ferramentas padrão para


desenhar um relatório, o DataReport possui seus próprios componentes. Observe que os
componentes da caixa de ferramentas “General” ficam indisponíveis se o DataReport
estiver selecionado, da mesma forma que os componentes da caixa de ferramentas
“DataReport” ficam indisponíveis se o Form estiver selecionado.
O RptLabel, RptTextBox, RptImage, RptLine e RptShape são 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 seção “Page Header” deverá ser definido o cabeçalho da página, ou seja, o


texto que será impresso no topo de todas as páginas do relatório. Na figura abaixo, um
exemplo de um cabeçalho simples desenhado com o RptLabel.

Para a seção “Detail (comProdutos_Detail)”, deverão ser arrastados todos os


campos do Command “comProdutos” que desejamos que sejam impressos no relatório.
Em Page Header deverá ser definido o cabeçalho da página, ou seja, o texto que deverá
ser impresso no topo de todas as páginas. 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 seção Detail são
colados um RptLabel e um RptTextBox.
Se você ainda não tiver rotulado o campo em questão, arraste o RptLabel para a
seção “Page Header” em seguida modifique suas propriedades. Observe que ao ser
colado um campo na seção Detail, os objetos RptLabel e RptTextBox vem selecionados,
desmarque o objeto RptTextBox antes de mover o objeto RptLabel.

Alignment: 1-RptJustifyRight
Caption: Código
DataFormat: General
Font: Negrito
É importante observar que campos numéricos devem ser alinhados sempre à
direita (right), enquanto campos alfanumericos devem ser alinhados a esquerda (left). A
propriedade DataFormat é usada para formatar a apresentação dos dados no relatório.
Após alterar as propriedades do campo pCódigo, repita o procedimento para os campos
pDescrição e pEstoque_Atual.

É importante observar as seguintes característica do DataReport:


- Os objetos RptLabel, RptTextBox e todos os demais, ao serem
movimentados através do mouse, observam o posicionamento do Grid (caixa
retangular existente em segundo plano).
- Para colocar um objeto em um determinada posição do relatório, faça-o
através da alteração das propriedades Left (posição horizontal) e Top
(posição vertical).
- Use as propriedades Height e Width para modificar respectivamente a altura
e o comprimento de um determinado componente.
- Em hipótese alguma modifique o comprimento e a altura do relatório. Se após
alterar o comprimento ou a altura, o relatório ficar maior que as dimensões do
formulário selecionado, ocorrerá um erro durante a impressão. Se o fizer,
faça-o aos poucos e teste a impressão (no vídeo a medida que for fazendo).
- No DataReport existem diversas seções. Antes de alterar quaisquer
propriedades, verifique antes na janela de propriedades se está atualmente
selecionado o objeto desejado.

Incluindo número de página, data e hora ao relatório

Para incluir o número da página atual, total de páginas, data atual e hora. Dê um
clique com o botão direito do mouse sobre a seção Page Header do relatório, em seguida,
selecione a opção Insert Control.
Fazendo a chamada do Relatório

A maneira mais simples de chamar um relatório criado no Data Report, é através


do método Show. A chamada deve ser digitada dentro de um botão de comando,
conforme mostrado no exemplo abaixo.

Private Sub cmdImprimir_Click()


rptProdutos.Show
End Sub
Filtrando os dados mostrados no relatório

O método “Filter” é uma ótima alternativa para filtrar os dados apresentados em


um determinado relatório criado no DataReport. Ele dever ser usado antes do método
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 relatório a partir de um Sub Command

As mudanças em relação a um relatório que usa um único Command são poucas.


Entretanto, vamos detalhar as diferenças para que seja mais fácil compreende-la.

1ª Mudança: 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: Relatório de Entradas
DataSource: deComercial
DataMember: comEntradas

2ª Mudança: o uso do comando “Retrieve Structure”, deixa de ser opcional e passa a ser
obrigatório. Observe que pelo fato do “Command” possuir um “Sub Command”, a partir de
agora o relatório tem agora as seções “Group Header” e “Group Footer”. Para visualiza-
las, aumente a altura do formulário.
33. PACKAGE & DEPLOYMENT WIZARD

Veja como gerar os discos de distribuição e o programa de instalação para a sua


aplicação usando o PACKAGE & DEPLOYMENT WIZARD.

• A questão da distribuição

Você acabou de desenvolver uma aplicação em Visual Basic, testou, depurou e,


finalmente, está pronto para distribuí-la aos usuários finais.
Geralmente tais usuários não possuem o Visual Basic instalado em suas máquinas
(você deve sempre considerar essa situação como a padrão).
Você terá então que distribuir com sua aplicação uma série de arquivos DLL, e, se
sua aplicação usar controles personalizados, terá também que distribuir os arquivos de
controle VBX/OCX que utiliza.
Para isto, ou você cria um programa de instalação com o Wizard, que determina
os arquivos que você precisa distribuir, ou tenta determinar por si mesmo quais os
arquivos precisam ser distribuídos.
O Package & Deployment Wizard é fornecido com o Visual Basic e você poderá
usá-lo para criar um programa que instalará sua aplicação na máquina do usuário.

As tarefas básicas que o Package & Deployment Wizard faz são:

• Construir o arquivo executável (EXE) do seu projeto.


• Criar um programa de instalação para a sua aplicação.
• Determinar os arquivos necessários para a aplicação.
• Compactar os arquivos do programa, copiá-los e dividi-los em discos para distribuição
(Disquete, CD-ROM, Disco Rígido e Redes).
• Criar um grupo de programas e um ícone no sistema do usuário.

Gerando o assistente de Instalação e os discos para distribuição

Vamos descrever passo a passo o processo de criação do programa de instalação


e da geração dos discos de distribuição para um projeto: agenda.vbp.
Vamos supor que a distribuição será feita em discos de 3 1/2 (1.44) e iremos usar
o Package & Deployment Wizard. Então 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 botão Browse para selecionar o projeto. Em seguida, clicamos
em Package.

3- Caso o seu projeto ainda não tenha sido compilado, aparecerá uma janela solicitando a
compilação. 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 instalação serão gravados. Então


clicamos em Next e:
6- Clicamos no botão Add para adicionar arquivos que serão distribuídos junto com a
aplicação, como por exemplo, um arquivo de banco de dados. Clicando em Next:

7- Escolhemos se a instalação será distribuída em um único arquivo (HD, rede, CD) ou


em vários arquivos (disquete), podendo especificar o tamanho. Clicando em Next:
8- Especificamos um nome para o programa de instalação. Next:

9- Definimos o local onde os ícones aparecerão no Menu Iniciar.

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

Você também pode gostar