microsoft visual basic

Transcrição

microsoft visual basic
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
Byte
Boolean
Integer
Long (long integer)
Single (single-precision
floating-point)
Storage
size
1 byte
2 bytes
2 bytes
4 bytes
4 bytes
Double (double-precision
floating-point)
8 bytes
Currency (scaled integer)
8 bytes
Decimal
14bytes
Date
Object
String (variable-length)
8 bytes
4 bytes
10 bytes +
string
length
Length of
string
16 bytes
String (fixed-length)
Variant (with numbers)
Variant (with characters)
22 bytes +
string
length
Range
0 to 255
True or False
-32,768 to 32,767
-2,147,483,648 to 2,147,483,647
-3.402823E38 to -1.401298E-45 for negative
values; 1.401298E-45 to 3.402823E38 for
positive values
-1.79769313486232E308 to 4.94065645841247E-324 for negative values;
4.94065645841247E-324 to
1.79769313486232E308 for positive values
-922,337,203,685,477.5808 to
922,337,203,685,477.5807
+/-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
January 1, 100 to December 31, 9999
Any Object reference
0 to approximately 2 billion
1 to approximately 65,400
Any numeric value up to the range of a
Double
Same range as for variable-length String
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
Cbool
Cbyte
Ccur
Cdate
CDbl
Cint
CLng
CSng
CStr
Cvar
CVErr
Descrição
Converte seu argumento para Boolean
Converte seu argumento para Byte
Converte seu argumento para Currency
Converte seu argumento para Date
Converte seu argumento para Double
Converte seu argumento para Integer
Converte seu argumento para Long
Converte seu argumento para Single
Converte seu argumento para String
Converte seu argumento para Variant
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
Load form
Form.Show [Modal]
Unload form
Ação
Carrega o formulário, mas o deixa invisível.
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)
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
End Sub
‘A variável Nome recebe a propriedade Text da
‘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
SELECT
Função
Obtém um grupo de registros e insere os registros em um dynaset ou em
uma tabela.
Define os valores dos campos de uma tabela em uma atualização.
UPDATE
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
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Caractere
·
·
·
·
·
·
·
·
**
**
**
·
·
**
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
ASCII
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
Caractere
[space]
!
"
#
$
%
&
'
(
)
*
+
,
.
/
0
1
2
3
4
5
6
7
8
9
:
;
<
=
>
?
ASCII
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
Caractere
@
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
[
\
]
^
_
ASCII
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
Caractere
`
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
{
|
}
~
·
·
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
João
Maria
José
Mauro
Pedro
Telefone
3221-1234
3222-5678
3212-1234
3213-1234
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
Show Markers
Stack Series
Series em rows
- Mostra a legenda no gráfico
- Marcas sobre cada coluna do gráfico
- Empilhar as colunas
- 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
RowCount
RowLabel
Data
Column
ColumnCount
ColumnLabel
BorderStyle
- especifica a linha corrente
- determina o número de seqüência de dados
- define o rótulo de dados da linha corrente
- Permite a leitura e a atribuição dos valores de dados ao gráfico
- define a coluna ativa
- define o número de colunas ativas
- define a legenda para a coluna ativa
- 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
João
Paulo
Maria
Lucas
Laura
Nota
5,0
7,5
8,0
2,0
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
Dim
Dim
Dim
Con As New ADODB.Connection
TbAlunos As New ADODB.Recordset
StringConexao As String
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=" &
rptProdutos.Show
TxtCodigo_Produto
deComercial.rscomProdutos.Filter = "pDescricao= ′Polvilho Azedo 1′ "
rptProdutos.Show
ou
deComercial.rscomProdutos.Filter = "pDescricao= ′ " &
rptProdutos.Show
TxtDescricao & "′′"
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 visualizalas, 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.

Documentos relacionados