222
Visual Basic Autor: Marcelo de Oliveira Rodrigues

Curso Visual Basic (Págs.222)

  • Upload
    mrjonh

  • View
    62

  • Download
    2

Embed Size (px)

Citation preview

Page 1: Curso Visual Basic (Págs.222)

Visual Basic

Autor: Marcelo de Oliveira Rodrigues

Page 2: Curso Visual Basic (Págs.222)

2

Software de gerenciamento

Nilted Modas_Moda Infanto Juvenil

Page 3: Curso Visual Basic (Págs.222)

3

Sumário

Capítulo 1

Introdução.....................................................................................................................3

Capítulo 2

Objetivo........................................................................................................................5

Capítulo 3

Banco de Dados...........................................................................................................6

1.1 Estruturas das Tabelas................................................................................7

Capítulo 4

Linguagem de Programação utilizada........................................................................10

2.1 Design (Formulários).................................................................................11

Capítulo 5

Melhorias no Sistema...............................................................................................219

Capítulo 6

Conclusão.................................................................................................................220

Capítulo 7

Referência Bibliográfica............................................................................................221

Page 4: Curso Visual Basic (Págs.222)

4

Introdução

a.ná.li.se

(gr análysis) sf 1 Decomposição ou separação de um todo em seus elementos

constituintes. 2 Exame ou estudo da natureza de uma coisa complexa ou

determinação de suas feições essenciais, por esse método. 3 Psiq Psicanálise.

Antôn (acepção 1): síntese.

sis.te.ma

(gr sýstema) sm 1 Conjunto de coisas ou partes de modo a formarem um todo

complexo ou unitário. 2 Qualquer conjunto ou série de membros ou elementos

correlacionados. 3 Hábito ou costume peculiar de cada criatura. 4 Anat Conjunto de

órgãos compostos dos mesmos tecidos destinados a idênticas funções fisiológicas.

5 Astr Grupo de corpos celestes associados e agindo em conjunto, segundo

determinadas leis naturais. 6 Método, modo, forma, plano. 7 Conjunto das

instituições políticas pelas quais é governado um Estado. 8 Inform Conjunto

formado por um ou mais computadores, seus periféric os e os programas

utilizados. Sistema Digestório (antes denominado aparelho digestivo), Anat:

conjunto de órgãos que têm por função tornar os alimentos assimiláveis, aproveitar

parte deles e expulsar a porção inútil. Sistema Nervoso, Anat: conjunto dos centros

nervosos e de todos os nervos. Sistema Nervoso Autônomo: parte do sistema

nervoso que inerva a musculatura cardíaca e controla secreções glandulares

diversas. É dividido em dois grandes setores: o simpático e o parassimpático.

Análise de sistemas

Análise de sistemas é a atividade que tem como finalidade realizar

estudos de processos a fim de encontrar o melhor e mais racional caminho para que

a informação possa ser processada. O analista de sistemas estuda os diversos

sistemas existentes entre hardwares (equipamento), softwares (programas) e o

usuário final, seus comportamentos e aplicações, desenvolvendo a partir de então

soluções que serão padronizadas e transcritas da forma que o computador possa

executar.

Page 5: Curso Visual Basic (Págs.222)

5

Os profissionais da área geram softwares (programas), que são

executados em hardwares (equipamentos) operados por usuários (indivíduos),

preparados e treinados em procedimentos operacionais padronizados, dotados de

conhecimentos do software e hardware para seu trabalho. A partir de então a análise

de sistemas é uma profissão, cujas responsabilidades concentram-se na análise do

sistema e na administração de sistemas computacionais. Cabe a este profissional

parte da organização, implantação e manutenção de aplicativos e redes de

computadores, ou seja, o analista de sistemas é o responsável pelo levantamento de

informações sobre uma empresa a fim de utilizá-las no desenvolvimento de um

sistema para a mesma ou para o levantamento de uma necessidade específica do

cliente para desenvolver este programa especifico com base nas informações

colhidas.

O profissional geralmente possui conhecimento adquirido em faculdades

de Ciência da computação, Análise de sistemas , Processamento de dados e

Programação, Informática, Sistemas de informação ou outras disciplinas similares

mas, a ausência de restrições para o exercício do cargo permite que profissionais

capacitados de outras áreas ou mesmo que não possuem educação superior

cumprir este papel nas empresas.

Como é uma ênfase, o foco e o núcleo de trabalho estão voltados para

Administração, levando em conta a área tecnológica em que irá auxiliar. O analista

de sistemas deve servir como um tradutor entre as necessidades do usuário e o

programa a ser desenvolvido pelo programador. Para isto, deve ter conhecimento

abrangente da área de negócio na qual o sistema será desenvolvido, a fim de que

possa implementar corretamente as regras de negócio. Atualmente o curso de

Análise de Sistemas foi substituído por Sistemas de Informação.

Page 6: Curso Visual Basic (Págs.222)

6

Objetivo

Desenvolver um projeto de desenvolvimento de software para gerenciar

uma loja, iniciando pela análise do sistema, projeto do sistema e programação, na

execução e finalização do programa para possível implantação futura.

Page 7: Curso Visual Basic (Págs.222)

7

Banco de Dados

Bancos de dados (ou bases de dados) são conjuntos de registros

dispostos em estrutura regular que possibilita a reorganização dos mesmos e

produção de informação. Um banco de dados normalmente agrupa registros

utilizáveis para um mesmo fim.

Um banco de dados é usualmente mantido e acessado por meio de um

software conhecido como Sistema Gerenciador de Banco de Dados (SGBD).

Normalmente um SGBD adota um modelo de dados, de forma pura, reduzida ou

estendida. Muitas vezes o termo banco de dados é usado como sinônimo de SGDB.

O modelo de dados mais adotado hoje em dia é o modelo relacional, onde

as estruturas têm a forma de tabelas, compostas por linhas e colunas.

Especificação do Banco de dados Utilizado: Microsoft Office Access;

Ficha Técnica: Microsoft Office Access

Desenvolvedor Microsoft

Última versão: 12.0.4518.1014 (6 de novembro de 2006)

Sistema Op. Microsoft Windows

Gênero: SRABD

Licença: Licença proprietária

Website: Access Home Page - Microsoft Office Online

Ele permite o desenvolvimento rápido de aplicações que envolvem tanto a

modelagem e estrutura de dados como também a interface a ser utilizada pelos usuários.

O desenvolvimento da estrutura de dados se dá de forma muito intuitiva, bastando

que o desenvolvedor possua conhecimentos básicos em modelagem de dados e lógica de

programação.

Programadores relativamente inexperientes e usuários determinados podem usá-lo

para construir aplicações simples, sem a necessidade de utilizar ferramentas desconhecidas.

Page 8: Curso Visual Basic (Págs.222)

8

1.1 Forma que será armazenado os dados, formação das tabelas e seus

respectivos campos, onde armazenará os registros.

� Clientes

Nome do Campo Tipo de dados Cod_Cli Número Nome_Cli Texto Logradouro_Cli Texto Endereco_Cli Texto Bairro_Cli Texto Compl_Cli Texto Cidade_Cli Texto Cep_Cli Número Estado_Cli Texto DataNasc_Cli Data/Hora Sexo_Cli Texto Cpf_Cli Número Fone1_Cli Número Fone2_Cli Número Ramal_Cli Número Renda_Cli Número Email_Cli Texto

� Compras

Nome do Campo Tipo de dados Cod_Compra Número Nf_Compra Número CodPro_Compra Número Qtd_Compra Número CodFor_Compra Número Data_Compra Data/Hora

Page 9: Curso Visual Basic (Págs.222)

9

� Fornecedores

Nome do Campo Tipo de dados Cod_For Número Razao_For Texto NomeFantasia_For Texto Logradouro_For Texto Endereco_For Texto Cidade_For Texto Bairro_For Texto Estado_For Texto Cep_For Número Compl_For Texto Fone1_For Número Fone2_For Número Ramal_For Número Fax_For Número Email_For Texto Repre_For Texto InscEstadual_For Número Cnpj_For Número

� Funcionarios

Nome do Campo Tipo de dados Cod_Fun Número Nome_Fun Texto Endereco_Fun Texto Logradouro_Fun Texto Bairro_Fun Texto Cidade_Fun Texto Compl_Fun Texto Cep_Fun Número Estado_Fun Texto Rg_Fun Número Cpf_Fun Número Sexo_Fun Texto DataNasc_Fun Data/Hora Fone1_Fun Número Fone2_Fun Número DataAdm_Fun Data/Hora EMail_Fun Texto Cargo_Fun Texto Fotografia_Fun Texto Nivel_Fun Texto Senha_Fun Texto

Page 10: Curso Visual Basic (Págs.222)

10

� Produtos

Nome do Campo Tipo de dados Cod_Pro Número Nome_Pro Texto Desc_Pro Texto Valor_Pro Unidade Monetária CodFor_Pro Número

� User_Sistema

Nome do Campo Tipo de dados CodUser_Sist Número Usuario_Sist Texto Senha_Sist Texto Nivel_Sist Texto

� Vendas

Nome do Campo Tipo de dados Cod_Vend Número CodCli_Vend Número NomeCli_Vend Texto Funcionario_Vend Texto Data_Vend Data/Hora

� Vendas_Detalhes

Nome do Campo Tipo de dados Cod_VendDet Número Item_VendDet Número CodVend_VendDet Número CodPro_VendDet Número DescPro_VendDet Texto Qtd_VendDet Número Preco_VendDet Unidade Monetária SubTotal_VendDet Unidade Monetária FormaPag_Vend Texto Total_VendDet Unidade Monetária

Page 11: Curso Visual Basic (Págs.222)

11

Especificação geral: Programa desenvolvido em Visual Basic;

Visual Basic

O Visual Basic é uma linguagem de programação produzida pela

empresa Microsoft, e é parte integrante do pacote Microsoft Visual Studio. Sua

versão mais recente faz parte do pacote Visual Studio .NET, voltada para aplicações

.Net. Sua versão anterior fez parte do Microsoft Visual Studio 6.0, ainda muito

utilizado atualmente.

Um aperfeiçoamento do BASIC, a linguagem é dirigida por eventos (event

driven), e possui também um ambiente de desenvolvimento integrado (IDE -

Integrated Development Environment) totalmente gráfico, facilitanto enormemente a

construção da interface das aplicações (GUI - Graphical User Interface), daí o nome

"Visual". Em suas primeiras versões, o Visual Basic não permitia acesso a bancos

de dados, sendo portanto, voltado apenas para iniciantes, mas devido ao sucesso

entre as empresas - que faziam uso de componentes adicionais fabricados por

terceiros para acesso a dados - a linguagem logo adotou tecnologias como DAO,

RDO, e ADO, também da Microsoft, permitindo fácil acesso a bases de dados. Mais

tarde foi adicionada também a possibilidade de criação de controles ActiveX, e, com

a chegada do Visual Studio .NET, o Visual Basic se tornou uma linguagem

totalmente orientada a objetos.

Page 12: Curso Visual Basic (Págs.222)

12

2.1 Design das telas utilizadas pelos usuários (Formulá rios)

Design (em alguns casos projeto ou projecto) é um esforço criativo

relacionado à configuração, concepção, elaboração e especificação de um artefato.

Esse esforço normalmente é orientado por uma intenção ou objetivo, ou para a

solução de um problema.

O termo deriva, originalmente, de designare, palavra em latim, sendo

mais tarde adaptado para o inglês design. Houve uma série de tentativas de

tradução do termo, mas os possíveis nomes como projética industrial que acabaram

em desuso.

Segui a baixo as telas e seus respectivos códigos para o devido

funcionamento.

� Os Usuários do Sistema devem se logar, para iniciarem a utilização do

mesmo.

Page 13: Curso Visual Basic (Págs.222)

13

Public cnLoja As New ADODB.Connection

Private rsLogon As New ADODB.Recordset

Public Vnome As String

Private Sub cmdCancelar_Click()

End

End Sub

Private Sub cmdConfirmar_Click()

Dim Vnivel, Vsenha As String

If txtUsuario.Text = Empty Then

MsgBox "Digite o nome do Usuário!", vbOKOnly + vbInformation, "Aviso"

txtUsuario.SetFocus

Exit Sub

End If

If txtSenha.Text = Empty Then

MsgBox "Digite a Senha!", vbOKOnly + vbInformation, "Aviso"

txtSenha.SetFocus

Exit Sub

End If

Vnome = Chr(39) & txtUsuario.Text & Chr(39)

Vsenha = Chr(39) & txtSenha.Text & Chr(39)

rsLogon.Open "Select * from User_Sistema where Usuario_Sist=" & Vnome & "and

Senha_Sist=" & Vsenha, cnLoja, adOpenKeyset, adLockOptimistic, adCmdText

If rsLogon.RecordCount = 0 Then

MsgBox "Usuário ou Senha Inválida!", vbOKOnly + vbInformation, "Aviso"

txtUsuario.Text = ""

txtSenha.Text = ""

txtUsuario.SetFocus

rsLogon.Close

Page 14: Curso Visual Basic (Págs.222)

14

Exit Sub

Else

frmSplashPrincipal.Show

Vnivel = rsLogon("Nivel_Sist")

Vnome = rsLogon("Usuario_Sist")

mdiPrincipal.stbMostra.Panels(1).Text = "Operador: " & Vnome

If Vnivel = "B" Then

With mdiPrincipal

.Gerenciar.Visible = False

End With

End If

If Vnivel = "C" Then

With mdiPrincipal

.Gerenciar.Visible = False

.Cadastro.Visible = False

End With

End If

Unload Me

End If

End Sub

Private Sub Form_Load()

cnLoja.ConnectionString = "Provider=microsoft.jet.oledb.4.0"

cnLoja.Open "D:\MARCELO\Projeto VB Final2\Loja.mdb"

lblData.Caption = Date

lblHora.Caption = Time

End Sub

Private Sub Form_Unload(Cancel As Integer)

If rsLogon.State = 1 Then

rsLogon.Close

Page 15: Curso Visual Basic (Págs.222)

15

End If

End Sub

Private Sub Timer1_Timer()

lblHora.Caption = Time

End Sub

� Momento onde estão sendo carregadas todas as informações relacionadas

ao Banco de dados e permissões dos usuários.

Private Sub tmrSplash_Timer()

pbbarra2.Value = pbbarra2.Value + 20

If pbbarra2.Value = 100 Then

pbbarra1.Value = 25

pbbarra2.Value = 0

lblPross.Caption = "Preparando a Aplicação"

End If

Page 16: Curso Visual Basic (Págs.222)

16

If pbbarra1.Value = 25 Then

pbbarra2.Value = pbbarra2.Value + 20

End If

If pbbarra2.Value = 100 Then

pbbarra1.Value = 50

pbbarra2.Value = 0

lblPross.Caption = "Carregando Banco de Bados"

End If

If pbbarra1.Value = 50 Then

pbbarra2.Value = pbbarra2.Value + 20

End If

If pbbarra2.Value = 100 Then

pbbarra1.Value = 75

pbbarra2.Value = 0

lblPross.Caption = "Carregando a Aplicação"

End If

If pbbarra1.Value = 75 Then

pbbarra2.Value = pbbarra2.Value + 20

End If

If pbbarra2.Value = 100 Then

pbbarra1.Value = 100

lblPross.Caption = "Processo Concluído"

mdiPrincipal.Show

Unload Me

End If

End Sub

Page 17: Curso Visual Basic (Págs.222)

17

� Tela Principal, nela estão disponíveis todas as ferramentas para uso dos

usuários.

Public cnBiblioteca As New ADODB.Connection

Private Sub Ajuda_Click()

With CommonDialog1

.HelpContext = "0001"

.HelpCommand = cdlHelpContext

.ShowHelp

End With

End Sub

Page 18: Curso Visual Basic (Págs.222)

18

Private Sub AlterarSenha_Click()

frmAlterarSenha.Show

frmAlterarSenha.Left = 5000

frmAlterarSenha.Top = 2000

End Sub

Private Sub CadClientes_Click()

frmCadClientes.Show

frmCadClientes.Left = 3000

frmCadClientes.Top = 800

End Sub

Private Sub CadCompras_Click()

frmCadCompras.Show

frmCadCompras.Left = 3000

frmCadCompras.Top = 1500

End Sub

Private Sub CadFornecedores_Click()

frmCadFornecedores.Show

frmCadFornecedores.Left = 2500

frmCadFornecedores.Top = 50

End Sub

Private Sub CadFuncionarios_Click()

frmCadFuncionarios.Show

frmCadFuncionarios.Left = 2000

frmCadFuncionarios.Top = 200

End Sub

Private Sub CadProdutos_Click()

frmCadProdutos.Show

frmCadProdutos.Left = 2500

frmCadProdutos.Top = 1500

Page 19: Curso Visual Basic (Págs.222)

19

End Sub

Private Sub CadUsuario_Click()

frmUserSistema.Show

frmUserSistema.Left = 4000

frmUserSistema.Top = 2000

End Sub

Private Sub ConClientes_Click()

frmConClientes.Show

frmConClientes.Top = 2000

frmConClientes.Left = 2000

End Sub

Private Sub ConCompras_Click()

frmConCompras.Show

frmConCompras.Top = 2000

frmConCompras.Left = 2000

End Sub

Private Sub ConFornecedores_Click()

frmConFornecedores.Show

frmConFornecedores.Top = 2000

frmConFornecedores.Left = 800

End Sub

Private Sub ConFuncionario_Click()

frmConFuncionarios.Show

frmConFuncionarios.Top = 2000

frmConFuncionarios.Left = 2000

End Sub

Private Sub ConProdutos_Click()

frmConProdutos.Show

Page 20: Curso Visual Basic (Págs.222)

20

frmConProdutos.Top = 2000

frmConProdutos.Left = 2000

End Sub

Private Sub ConUsuario_Click()

frmConUsuarios.Show

frmConUsuarios.Left = 4000

frmConUsuarios.Top = 2000

End Sub

Private Sub FazerLogoff_Click()

If MsgBox("Deseja realmente fazer Logoff?", vbYesNo + vbQuestion, "Logoff") =

vbYes Then

frmLogon.cnLoja.Close

Unload Me

frmLogon.Show

End If

End Sub

Private Sub Fim_Click()

If MsgBox("Deseja realmente sair?", vbYesNo + vbQuestion, "Aviso") = vbYes Then

End

End If

End Sub

Private Sub fundo_Click()

frmPlanoFundo.Show

frmPlanoFundo.Top = 2000

frmPlanoFundo.Left = 4000

End Sub

Private Sub MDIForm_Load()

CommonDialog1.HelpFile = App.HelpFile

stbMostra.Panels(5) = Time

Page 21: Curso Visual Basic (Págs.222)

21

cnBiblioteca.ConnectionString = "Provider=microsoft.jet.oledb.4.0"

cnBiblioteca.Open "D:\MARCELO\Projeto VB Final2\Loja.mdb"

End Sub

Private Sub MDIForm_Unload(Cancel As Integer)

cnBiblioteca.Close

End Sub

Private Sub SobreSist_Click()

frmAbout.Show

frmAbout.Top = 600

frmAbout.Left = 3000

End Sub

Private Sub Timer1_Timer()

stbMostra.Panels(5) = Time

End Sub

Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)

If Button.Key = "Calendario" Then

frmCalendario.Show

frmCalendario.Top = 2000

frmCalendario.Left = 2000

ElseIf Button.Key = "Calculadora" Then

frmCalculadora.Show

frmCalculadora.Top = 2000

frmCalculadora.Left = 6000

ElseIf Button.Key = "Bloco" Then

frmEditor.Show

frmEditor.Top = 900

frmEditor.Left = 3000

ElseIf Button.Key = "Agenda" Then

frmSplash.Show

frmSplash.Top = 3000

Page 22: Curso Visual Basic (Págs.222)

22

frmSplash.Left = 5000

ElseIf Button.Key = "Sair" Then

If MsgBox("Deseja realmente sair do sistema?", vbYesNo + vbQuestion, "Aviso") =

vbYes Then

End

End If

End If

End Sub

Private Sub UtiAgenda_Click()

frmSplash.Show

frmSplash.Top = 3000

frmSplash.Left = 5000

End Sub

Private Sub UtiBloco_Click()

frmEditor.Show

frmEditor.Top = 900

frmEditor.Left = 3000

End Sub

Private Sub Uticalc_Click()

frmCalculadora.Show

frmCalculadora.Top = 2500

frmCalculadora.Left = 2500

End Sub

Private Sub UtiCalendario_Click()

frmCalendario.Show

frmCalendario.Top = 2000

frmCalendario.Left = 2000

End Sub

Private Sub Venda_Click()

frmTelaVenda.Show

Page 23: Curso Visual Basic (Págs.222)

23

frmTelaVenda.Left = 1500

frmTelaVenda.Top = 700

End Sub

Sub CentraImagem()

Picture1.Cls

Picture1.Visible = True

Picture1.AutoRedraw = True

Picture1.BackColor = &H8000000C

Picture1.Height = Me.Height

Image1.Stretch = False

Image1.Top = Picture1.Height / 2 - Image1.Height / 2

Image1.Left = Picture1.Width / 2 - Image1.Width / 2

Picture1.PaintPicture Image1, Image1.Left, Image1.Top, Image1.Width,

Image1.Height

mdiPrincipal.Picture = Picture1.Image

Picture1.Visible = False

End Sub

Sub EstendeImagem()

Picture1.Cls

Picture1.Visible = True

Picture1.AutoRedraw = True

Picture1.BackColor = &H8000000C

Picture1.Height = Me.Height

Image1.Stretch = True

Image1.Top = 0

Image1.Left = 0

Image1.Height = Picture1.Height

Image1.Width = Picture1.Width

Picture1.PaintPicture Image1, Image1.Left, Image1.Top, Image1.Width,

Image1.Height

mdiPrincipal.Picture = Picture1.Image

Picture1.Visible = False

Page 24: Curso Visual Basic (Págs.222)

24

End Sub

Sub NormalImagem()

Picture1.Visible = True

Image1.Stretch = False

mdiPrincipal.Picture = Image1.Picture

Picture1.Visible = False

End Sub

Sub LadoaLadoImagem()

Dim wid As Single

Dim hgt As Single

Dim x As Single

Dim y As Single

Picture1.Visible = True

Picture1.AutoRedraw = True

Picture1.Height = Me.Height

Image1.Stretch = False

wid = Image1.Width

hgt = Image1.Height

y = 0

Do While y < Picture1.ScaleHeight

x = 0

Do While x < Picture1.ScaleWidth

Picture1.PaintPicture Image1, x, y, wid, hgt

x = x + wid

Loop

y = y + hgt

Loop

Picture1.Visible = False

mdiPrincipal.Picture = Picture1.Image

End Sub

Page 25: Curso Visual Basic (Págs.222)

25

� Tela onde é inserido dados cadastrais dos clientes, podendo também alterá-los

e excluir os devidos cadastros.

Private rsCadClientes As New ADODB.Recordset

Private Const CB_FINDSTRING As Long = &H14C

Private Declare Function SendMessage Lib "USER32" Alias "SendMessageA" (ByVal

hWnd As Long, _

ByVal wMsg As Long, _

ByVal wParam As Long, _

lParam As Any) As Long

Public Function Combo_AutoCompletar(xCombo As ComboBox, ByVal xKeyAscii As

Long, Optional ByVal xUpperCase As Boolean = True) As Long

Dim lngFind As Long, intPos As Long, intLength As Long, tStr As String

Page 26: Curso Visual Basic (Págs.222)

26

With xCombo

If xKeyAscii = 8 Then

If .SelStart = 0 Then Exit Function

.SelStart = .SelStart - 1

.SelLength = Len(.Text)

.SelText = vbNullString

Else

intPos = .SelStart

tStr = .Text

.SelText = (Chr$(xKeyAscii))

End If

lngFind = SendMessage(.hWnd, CB_FINDSTRING, 0, ByVal .Text)

If lngFind = -1 Then

.Text = tStr

.SelStart = intPos

.SelLength = (Len(.Text) - intPos)

Combo_AutoCompletar = xKeyAscii

Else

intPos = .SelStart

intLength = Len(.List(lngFind)) - Len(.Text)

.SelText = .SelText & Right$(.List(lngFind), intLength)

.SelStart = intPos

.SelLength = intLength

End If

End With

End Function

Private Sub cmbLogradouro_KeyPress(KeyAscii As Integer)

KeyAscii = Asc(UCase(Chr(KeyAscii)))

KeyAscii = Combo_AutoCompletar(cmbLogradouro, KeyAscii)

End Sub

Private Sub cmbSexo_KeyPress(KeyAscii As Integer)

Page 27: Curso Visual Basic (Págs.222)

27

If InStr("0123456789<>|\;,.?/[{}]+=§-_)(*&%$#@!*", Chr(KeyAscii)) <> 0 Then

KeyAscii = 0

End If

KeyAscii = Asc(UCase(Chr(KeyAscii)))

KeyAscii = Combo_AutoCompletar(cmbSexo, KeyAscii)

End Sub

Private Sub cmdAlterar_Click()

HabilitaCampos

txtNome.SetFocus

cmdIncluir.Enabled = False

cmdFechar.Enabled = False

cmdCancelar.Enabled = True

cmdAlterar.Enabled = False

cmdGravar.Enabled = True

cmdExcluir.Enabled = False

cmdPrimeiro.Enabled = False

cmdAnterior.Enabled = False

cmdProximo.Enabled = False

cmdUltimo.Enabled = False

End Sub

Private Sub cmdAnterior_Click()

rsCadClientes.MovePrevious

If rsCadClientes.BOF Then

rsCadClientes.MoveFirst

End If

MostraRegistro

End Sub

Private Sub cmdCancelar_Click()

rsCadClientes.CancelUpdate

If rsCadClientes.RecordCount = 0 Then

LimpaRegistro

Page 28: Curso Visual Basic (Págs.222)

28

cmdExcluir.Enabled = False

cmdAlterar.Enabled = False

cmdPrimeiro.Enabled = False

cmdAnterior.Enabled = False

cmdProximo.Enabled = False

cmdUltimo.Enabled = False

cmdIncluir.Enabled = True

cmdFechar.Enabled = True

cmdCancelar.Enabled = False

cmdGravar.Enabled = False

Else

MostraRegistro

cmdGravar.Enabled = False

cmdCancelar.Enabled = False

cmdIncluir.Enabled = True

cmdFechar.Enabled = True

cmdPrimeiro.Enabled = True

cmdAnterior.Enabled = True

cmdProximo.Enabled = True

cmdUltimo.Enabled = True

cmdAlterar.Enabled = True

cmdExcluir.Enabled = True

End If

DesabilitaCampos

End Sub

Private Sub cmdExcluir_Click()

If MsgBox("Deseja excluir o cadastro?", vbYesNo + vbQuestion, "Atenção") = vbYes

Then

rsCadClientes.Delete

If rsCadClientes.RecordCount = 0 Then

LimpaRegistro

Page 29: Curso Visual Basic (Págs.222)

29

cmdExcluir.Enabled = False

cmdAlterar.Enabled = False

cmdPrimeiro.Enabled = False

cmdAnterior.Enabled = False

cmdProximo.Enabled = False

cmdUltimo.Enabled = False

Else

rsCadClientes.MoveNext

If rsCadClientes.EOF Then

rsCadClientes.MoveLast

End If

MostraRegistro

End If

End If

End Sub

Private Sub cmdFechar_Click()

Unload Me

End Sub

Private Sub cmdGravar_Click()

If txtNome.Text = "" Then

MsgBox "O NOME é obrigatório!", vbOKOnly + vbInformation, "Aviso"

txtNome.SetFocus

Exit Sub

End If

If txtCEP.Text = "" Then

MsgBox "O CEP é obrigatório!", vbOKOnly + vbInformation, "Aviso"

txtCEP.SetFocus

Exit Sub

End If

If txtEndereco.Text = "" Then

Page 30: Curso Visual Basic (Págs.222)

30

MsgBox "O ENDEREÇO é obrigatório!", vbOKOnly + vbInformation, "Aviso"

txtEndereco.SetFocus

Exit Sub

End If

If txtCidade.Text = "" Then

MsgBox "A CIDADE é obrigatório!", vbOKOnly + vbInformation, "Aviso"

txtCidade.SetFocus

Exit Sub

End If

If txtEstado.Text = "" Then

MsgBox "O ESTADO é obrigatório!", vbOKOnly + vbInformation, "Aviso"

txtEstado.SetFocus

Exit Sub

End If

rsCadClientes("Cod_Cli") = txtCodigo.Text

rsCadClientes("Nome_Cli") = txtNome.Text

rsCadClientes("Logradouro_Cli") = cmbLogradouro.Text

rsCadClientes("Endereco_Cli") = txtEndereco.Text

rsCadClientes("Bairro_Cli") = txtBairro.Text

rsCadClientes("Compl_Cli") = txtComplemento.Text

rsCadClientes("Cidade_Cli") = txtCidade.Text

rsCadClientes("Cep_Cli") = txtCEP.Text

rsCadClientes("Estado_Cli") = txtEstado.Text

rsCadClientes("DataNasc_Cli") = txtData.Text

rsCadClientes("Sexo_Cli") = cmbSexo.Text

rsCadClientes("Cpf_Cli") = txtCPF.Text

rsCadClientes("Fone1_Cli") = txtFone1.Text

rsCadClientes("Fone2_Cli") = txtFone2.Text

rsCadClientes("Ramal_Cli") = txtRamal.Text

rsCadClientes("Renda_Cli") = txtRenda.Text

rsCadClientes("Email_Cli") = txtEmail.Text

Page 31: Curso Visual Basic (Págs.222)

31

rsCadClientes.Update

DesabilitaCampos

MsgBox "Dados do Cliente salvos com sucesso!!!", vbOKOnly + vbInformation,

"Aviso"

cmdCancelar.Enabled = False

cmdIncluir.Enabled = True

cmdFechar.Enabled = True

cmdGravar.Enabled = False

cmdPrimeiro.Enabled = True

cmdAnterior.Enabled = True

cmdProximo.Enabled = True

cmdUltimo.Enabled = True

cmdAlterar.Enabled = True

cmdExcluir.Enabled = True

End Sub

Private Sub cmdIncluir_Click()

Dim Vcodigo As Integer

If rsCadClientes.RecordCount = 0 Then

rsCadClientes.AddNew

Vcodigo = 1

txtCodigo.Text = Format(Vcodigo, "00000")

Else

rsCadClientes.MoveLast

Vcodigo = rsCadClientes("Cod_Cli")

Vcodigo = Vcodigo + 1

rsCadClientes.AddNew

LimpaRegistro

txtCodigo.Text = Format(Vcodigo, "00000")

End If

HabilitaCampos

Page 32: Curso Visual Basic (Págs.222)

32

txtNome.SetFocus

cmdCancelar.Enabled = True

cmdFechar.Enabled = False

cmdIncluir.Enabled = False

cmdGravar.Enabled = True

cmdPrimeiro.Enabled = False

cmdAnterior.Enabled = False

cmdProximo.Enabled = False

cmdUltimo.Enabled = False

cmdExcluir.Enabled = False

cmdAlterar.Enabled = False

End Sub

Private Sub cmdPrimeiro_Click()

rsCadClientes.MoveFirst

MostraRegistro

End Sub

Private Sub cmdProximo_Click()

rsCadClientes.MoveNext

If rsCadClientes.EOF Then

rsCadClientes.MoveLast

End If

MostraRegistro

End Sub

Private Sub cmdUltimo_Click()

rsCadClientes.MoveLast

MostraRegistro

End Sub

Private Sub Form_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then

SendKeys "{tab}"

Page 33: Curso Visual Basic (Págs.222)

33

End If

End Sub

Private Sub Form_Load()

rsCadClientes.Open "Clientes", mdiPrincipal.cnBiblioteca, adOpenKeyset,

adLockOptimistic, adCmdTable

If rsCadClientes.RecordCount > 0 Then

MostraRegistro

Else

cmdExcluir.Enabled = False

cmdAlterar.Enabled = False

cmdPrimeiro.Enabled = False

cmdAnterior.Enabled = False

cmdProximo.Enabled = False

cmdUltimo.Enabled = False

End If

DesabilitaCampos

lblContador.Caption = "Clientes Cadastrados: " & rsCadClientes.RecordCount

End Sub

Private Sub Form_Unload(Cancel As Integer)

rsCadClientes.Close

End Sub

Private Sub txtCPF_KeyPress(KeyAscii As Integer)

If (KeyAscii < Asc("0") Or KeyAscii > Asc("9") And KeyAscii <> 8) Then

KeyAscii = 0

End If

End Sub

Page 34: Curso Visual Basic (Págs.222)

34

Private Sub txtEmail_KeyPress(KeyAscii As Integer)

KeyAscii = Asc(LCase(Chr(KeyAscii)))

End Sub

Private Sub DesabilitaCampos()

txtNome.Enabled = False

cmbLogradouro.Enabled = False

txtCEP.Enabled = False

txtEndereco.Enabled = False

txtBairro.Enabled = False

txtCidade.Enabled = False

txtEstado.Enabled = False

txtFone1.Enabled = False

txtFone2.Enabled = False

txtRamal.Enabled = False

txtData.Enabled = False

cmbSexo.Enabled = False

txtRenda.Enabled = False

txtEmail.Enabled = False

txtCPF.Enabled = False

txtComplemento.Enabled = False

End Sub

Private Sub MostraRegistro()

If Not IsNull(rsCadClientes("Cod_Cli")) Then

txtCodigo.Text = Format(rsCadClientes("Cod_Cli"), "00000")

Else

txtCodigo.Text = Empty

End If

If Not IsNull(rsCadClientes("Nome_Cli")) Then

txtNome.Text = rsCadClientes("Nome_Cli")

Else

txtNome.Text = Empty

End If

Page 35: Curso Visual Basic (Págs.222)

35

If Not IsNull(rsCadClientes("Logradouro_Cli")) Then

cmbLogradouro.Text = rsCadClientes("Logradouro_Cli")

Else

cmbLogradouro.Text = Empty

End If

If Not IsNull(rsCadClientes("Endereco_Cli")) Then

txtEndereco.Text = rsCadClientes("Endereco_Cli")

Else

txtEndereco.Text = Empty

End If

If Not IsNull(rsCadClientes("Bairro_Cli")) Then

txtBairro.Text = rsCadClientes("Bairro_Cli")

Else

txtBairro.Text = Empty

End If

If Not IsNull(rsCadClientes("Compl_Cli")) Then

txtComplemento.Text = rsCadClientes("Compl_Cli")

Else

txtComplemento.Text = Empty

End If

If Not IsNull(rsCadClientes("Cidade_Cli")) Then

txtCidade.Text = rsCadClientes("Cidade_Cli")

Else

txtCidade.Text = Empty

End If

If Not IsNull(rsCadClientes("Cep_Cli")) Then

txtCEP.Text = rsCadClientes("Cep_Cli")

Else

Page 36: Curso Visual Basic (Págs.222)

36

txtCEP.Text = Empty

End If

If Not IsNull(rsCadClientes("Estado_Cli")) Then

txtEstado.Text = rsCadClientes("Estado_Cli")

Else

txtEstado.Text = Empty

End If

If Not IsNull(rsCadClientes("DataNasc_Cli")) Then

txtData.Text = rsCadClientes("DataNasc_Cli")

Else

txtData.Text = Empty

End If

If Not IsNull(rsCadClientes("Sexo_Cli")) Then

cmbSexo.Text = rsCadClientes("Sexo_Cli")

Else

cmbSexo.Text = Empty

End If

If Not IsNull(rsCadClientes("Cpf_Cli")) Then

txtCPF.Text = rsCadClientes("Cpf_Cli")

Else

txtCPF.Text = Empty

End If

If Not IsNull(rsCadClientes("Fone1_Cli")) Then

txtFone1.Text = rsCadClientes("Fone1_Cli")

Else

txtFone1.Text = Empty

End If

If Not IsNull(rsCadClientes("Fone2_Cli")) Then

Page 37: Curso Visual Basic (Págs.222)

37

txtFone2.Text = rsCadClientes("Fone2_Cli")

Else

txtFone2.Text = Empty

End If

If Not IsNull(rsCadClientes("Ramal_Cli")) Then

txtRamal.Text = rsCadClientes("Ramal_Cli")

Else

txtRamal.Text = Empty

End If

If Not IsNull(rsCadClientes("Renda_Cli")) Then

txtRenda.Text = rsCadClientes("Renda_Cli")

Else

txtRenda.Text = Empty

End If

If Not IsNull(rsCadClientes("Email_Cli")) Then

txtEmail.Text = rsCadClientes("Email_Cli")

Else

txtEmail.Text = Empty

End If

End Sub

Private Sub HabilitaCampos()

txtNome.Enabled = True

cmbLogradouro.Enabled = True

txtCEP.Enabled = True

txtEndereco.Enabled = True

txtBairro.Enabled = True

txtCidade.Enabled = True

txtEstado.Enabled = True

txtFone1.Enabled = True

txtFone2.Enabled = True

Page 38: Curso Visual Basic (Págs.222)

38

txtRamal.Enabled = True

txtData.Enabled = True

cmbSexo.Enabled = True

txtRenda.Enabled = True

txtEmail.Enabled = True

txtCPF.Enabled = True

txtComplemento.Enabled = True

End Sub

Private Sub LimpaRegistro()

txtCodigo.Text = ""

txtNome.Text = ""

cmbLogradouro.Text = ""

txtCEP.Text = ""

txtEndereco.Text = ""

txtBairro.Text = ""

txtCidade.Text = ""

txtEstado.Text = ""

txtFone1.Text = ""

txtFone2.Text = ""

txtRamal.Text = ""

txtData.Text = ""

cmbSexo.Text = ""

txtRenda.Text = ""

txtEmail.Text = ""

txtCPF.Text = ""

txtComplemento.Text = ""

End Sub

Private Sub txtBairro_KeyPress(KeyAscii As Integer)

KeyAscii = Asc(UCase(Chr(KeyAscii)))

End Sub

Private Sub txtCidade_KeyPress(KeyAscii As Integer)

KeyAscii = Asc(UCase(Chr(KeyAscii)))

Page 39: Curso Visual Basic (Págs.222)

39

End Sub

Private Sub txtComplemento_KeyPress(KeyAscii As Integer)

KeyAscii = Asc(UCase(Chr(KeyAscii)))

End Sub

Private Sub txtEndereco_KeyPress(KeyAscii As Integer)

KeyAscii = Asc(UCase(Chr(KeyAscii)))

End Sub

Private Sub txtEstado_KeyPress(KeyAscii As Integer)

If InStr("0123456789<>|\;,.?/[{}]+=§-_)(*&%$#@!*", Chr(KeyAscii)) <> 0 Then

KeyAscii = 0

End If

KeyAscii = Asc(UCase(Chr(KeyAscii)))

End Sub

Private Sub txtNome_KeyPress(KeyAscii As Integer)

KeyAscii = Asc(UCase(Chr(KeyAscii)))

If InStr("0123456789<>|\;,.?/[{}]+=§-_)(*&%$#@!*", Chr(KeyAscii)) <> 0 Then

KeyAscii = 0

End If

End Sub

Private Sub txtRamal_KeyPress(KeyAscii As Integer)

If (KeyAscii < Asc("0") Or KeyAscii > Asc("9") And KeyAscii <> 8) Then

KeyAscii = 0

End If

End Sub

Private Sub txtRenda_KeyPress(KeyAscii As Integer)

If (KeyAscii < Asc("0") Or KeyAscii > Asc("9") And KeyAscii <> 8) Then

KeyAscii = 0

End If

Page 40: Curso Visual Basic (Págs.222)

40

End Sub

Private Sub txtRenda_LostFocus()

txtRenda.Text = Format(txtRenda.Text, "Currency")

End Sub

Private rsCadCompras As New ADODB.Recordset

Private Sub cmdAlterar_Click()

HabilitaCampos

txtNF.SetFocus

cmdIncluir.Enabled = False

cmdFechar.Enabled = False

cmdCancelar.Enabled = True

cmdAlterar.Enabled = False

cmdGravar.Enabled = True

cmdExcluir.Enabled = False

cmdPrimeiro.Enabled = False

Page 41: Curso Visual Basic (Págs.222)

41

cmdAnterior.Enabled = False

cmdProximo.Enabled = False

cmdUltimo.Enabled = False

End Sub

Private Sub cmdAnterior_Click()

rsCadCompras.MovePrevious

If rsCadCompras.BOF Then

rsCadCompras.MoveFirst

End If

MostraRegistro

End Sub

Private Sub cmdCancelar_Click()

rsCadCompras.CancelUpdate

If rsCadCompras.RecordCount = 0 Then

LimpaRegistro

cmdExcluir.Enabled = False

cmdAlterar.Enabled = False

cmdPrimeiro.Enabled = False

cmdAnterior.Enabled = False

cmdProximo.Enabled = False

cmdUltimo.Enabled = False

cmdIncluir.Enabled = True

cmdFechar.Enabled = True

cmdCancelar.Enabled = False

cmdGravar.Enabled = False

Else

MostraRegistro

cmdGravar.Enabled = False

cmdCancelar.Enabled = False

cmdIncluir.Enabled = True

cmdFechar.Enabled = True

cmdPrimeiro.Enabled = True

Page 42: Curso Visual Basic (Págs.222)

42

cmdAnterior.Enabled = True

cmdProximo.Enabled = True

cmdUltimo.Enabled = True

cmdAlterar.Enabled = True

cmdExcluir.Enabled = True

End If

DesabilitaCampos

End Sub

Private Sub cmdExcluir_Click()

If MsgBox("Deseja excluir o cadastro?", vbYesNo + vbQuestion, "Atenção") = vbYes

Then

rsCadCompras.Delete

If rsCadCompras.RecordCount = 0 Then

LimpaRegistro

cmdExcluir.Enabled = False

cmdAlterar.Enabled = False

cmdPrimeiro.Enabled = False

cmdAnterior.Enabled = False

cmdProximo.Enabled = False

cmdUltimo.Enabled = False

Else

rsCadCompras.MoveNext

If rsCadCompras.EOF Then

rsCadCompras.MoveLast

End If

MostraRegistro

End If

End If

End Sub

Private Sub cmdFechar_Click()

Page 43: Curso Visual Basic (Págs.222)

43

Unload Me

End Sub

Private Sub cmdGravar_Click()

If txtNF.Text = "" Then

MsgBox "O Nº da Nota Fiscal é obrigatório!", vbOKOnly + vbInformation, "Aviso"

txtNF.SetFocus

Exit Sub

End If

If txtCodPro.Text = "" Then

MsgBox "O Código do Produto é obrigatório!", vbOKOnly + vbInformation, "Aviso"

txtCodPro.SetFocus

Exit Sub

End If

If txtQtd.Text = "" Then

MsgBox "A Quantidade é obrigatório!", vbOKOnly + vbInformation, "Aviso"

txtQtd.SetFocus

Exit Sub

End If

If txtCodFor.Text = "" Then

MsgBox "O Código do Fornecedor é obrigatório!", vbOKOnly + vbInformation,

"Aviso"

txtCodFor.SetFocus

Exit Sub

End If

rsCadCompras("Cod_Compra") = txtCodigo.Text

rsCadCompras("Nf_Compra") = txtNF.Text

rsCadCompras("CodPro_Compra") = txtCodPro.Text

rsCadCompras("Qtd_Compra") = txtQtd.Text

rsCadCompras("CodFor_Compra") = txtCodFor.Text

Page 44: Curso Visual Basic (Págs.222)

44

rsCadCompras("Data_Compra") = txtData.Text

rsCadCompras.Update

DesabilitaCampos

MsgBox "Dados da Compra salvos com sucesso!!!", vbOKOnly + vbInformation,

"Aviso"

cmdCancelar.Enabled = False

cmdIncluir.Enabled = True

cmdFechar.Enabled = True

cmdGravar.Enabled = False

cmdPrimeiro.Enabled = True

cmdAnterior.Enabled = True

cmdProximo.Enabled = True

cmdUltimo.Enabled = True

cmdAlterar.Enabled = True

cmdExcluir.Enabled = True

End Sub

Private Sub cmdIncluir_Click()

Dim Vcodigo As Integer

If rsCadCompras.RecordCount = 0 Then

rsCadCompras.AddNew

Vcodigo = 1

txtCodigo.Text = Format(Vcodigo, "00000")

Else

rsCadCompras.MoveLast

Vcodigo = rsCadCompras("Cod_Compra")

Vcodigo = Vcodigo + 1

rsCadCompras.AddNew

LimpaRegistro

txtCodigo.Text = Format(Vcodigo, "00000")

End If

Page 45: Curso Visual Basic (Págs.222)

45

HabilitaCampos

txtNF.SetFocus

cmdCancelar.Enabled = True

cmdFechar.Enabled = False

cmdIncluir.Enabled = False

cmdGravar.Enabled = True

cmdPrimeiro.Enabled = False

cmdAnterior.Enabled = False

cmdProximo.Enabled = False

cmdUltimo.Enabled = False

cmdExcluir.Enabled = False

cmdAlterar.Enabled = False

End Sub

Private Sub cmdPrimeiro_Click()

rsCadCompras.MoveFirst

MostraRegistro

End Sub

Private Sub cmdProximo_Click()

rsCadCompras.MoveNext

If rsCadCompras.EOF Then

rsCadCompras.MoveLast

End If

MostraRegistro

End Sub

Private Sub cmdUltimo_Click()

rsCadCompras.MoveLast

MostraRegistro

End Sub

Private Sub Form_KeyPress(KeyAscii As Integer)

Page 46: Curso Visual Basic (Págs.222)

46

If KeyAscii = 13 Then

SendKeys "{tab}"

End If

End Sub

Private Sub Form_Load()

rsCadCompras.Open "Compras", mdiPrincipal.cnBiblioteca, adOpenKeyset,

adLockOptimistic, adCmdTable

If rsCadCompras.RecordCount > 0 Then

MostraRegistro

Else

cmdExcluir.Enabled = False

cmdAlterar.Enabled = False

cmdPrimeiro.Enabled = False

cmdAnterior.Enabled = False

cmdProximo.Enabled = False

cmdUltimo.Enabled = False

End If

DesabilitaCampos

End Sub

Private Sub Form_Unload(Cancel As Integer)

rsCadCompras.Close

End Sub

Private Sub DesabilitaCampos()

txtNF.Enabled = False

txtCodPro.Enabled = False

txtQtd.Enabled = False

txtCodFor.Enabled = False

txtData.Enabled = False

End Sub

Page 47: Curso Visual Basic (Págs.222)

47

Private Sub MostraRegistro()

If Not IsNull(rsCadCompras("Cod_Compra")) Then

txtCodigo.Text = Format(rsCadCompras("Cod_Compra"), "00000")

Else

txtCodigo.Text = Empty

End If

If Not IsNull(rsCadCompras("Nf_Compra")) Then

txtNF.Text = rsCadCompras("Nf_Compra")

Else

txtNF.Text = Empty

End If

If Not IsNull(rsCadCompras("CodPro_Compra")) Then

txtCodPro.Text = rsCadCompras("CodPro_Compra")

Else

txtCodPro.Text = Empty

End If

If Not IsNull(rsCadCompras("Qtd_Compra")) Then

txtQtd.Text = rsCadCompras("Qtd_Compra")

Else

txtQtd.Text = Empty

End If

If Not IsNull(rsCadCompras("CodFor_Compra")) Then

txtCodFor.Text = rsCadCompras("CodFor_Compra")

Else

txtCodFor.Text = Empty

End If

If Not IsNull(rsCadCompras("Data_Compra")) Then

txtData.Text = rsCadCompras("Data_Compra")

Page 48: Curso Visual Basic (Págs.222)

48

Else

txtData.Text = Empty

End If

End Sub

Private Sub HabilitaCampos()

txtNF.Enabled = True

txtCodPro.Enabled = True

txtQtd.Enabled = True

txtCodFor.Enabled = True

txtData.Enabled = True

End Sub

Private Sub LimpaRegistro()

txtCodigo.Text = ""

txtNF.Text = ""

txtCodPro.Text = ""

txtQtd.Text = ""

txtCodFor.Text = ""

txtData.Text = ""

End Sub

Private Sub txtCodFor_KeyPress(KeyAscii As Integer)

If (KeyAscii < Asc("0") Or KeyAscii > Asc("9") And KeyAscii <> 8) Then

KeyAscii = 0

End If

End Sub

Private Sub txtCodPro_KeyPress(KeyAscii As Integer)

If (KeyAscii < Asc("0") Or KeyAscii > Asc("9") And KeyAscii <> 8) Then

KeyAscii = 0

End If

End Sub

Private Sub txtNF_KeyPress(KeyAscii As Integer)

Page 49: Curso Visual Basic (Págs.222)

49

If (KeyAscii < Asc("0") Or KeyAscii > Asc("9") And KeyAscii <> 8) Then

KeyAscii = 0

End If

End Sub

Private Sub txtQtd_KeyPress(KeyAscii As Integer)

If (KeyAscii < Asc("0") Or KeyAscii > Asc("9") And KeyAscii <> 8) Then

KeyAscii = 0

End If

End Sub

Page 50: Curso Visual Basic (Págs.222)

50

Private rsCadFornecedores As New ADODB.Recordset

Option Explicit

Private Const CB_FINDSTRING As Long = &H14C

Private Declare Function SendMessage Lib "USER32" Alias "SendMessageA" (ByVal

hWnd As Long, _

ByVal wMsg As Long, _

ByVal wParam As Long, _

lParam As Any) As Long

Public Function Combo_AutoCompletar(xCombo As ComboBox, ByVal xKeyAscii As

Long, Optional ByVal xUpperCase As Boolean = True) As Long

Page 51: Curso Visual Basic (Págs.222)

51

Dim lngFind As Long, intPos As Long, intLength As Long, tStr As String

With xCombo

If xKeyAscii = 8 Then

If .SelStart = 0 Then Exit Function

.SelStart = .SelStart - 1

.SelLength = Len(.Text)

.SelText = vbNullString

Else

intPos = .SelStart

tStr = .Text

.SelText = (Chr$(xKeyAscii))

' .SelText = IIf(xUpperCase, _

' UCase$(Chr$(xKeyAscii)), _

' LCase$(Chr$(xKeyAscii)))

End If

lngFind = SendMessage(.hWnd, CB_FINDSTRING, 0, ByVal .Text)

If lngFind = -1 Then

.Text = tStr

.SelStart = intPos

.SelLength = (Len(.Text) - intPos)

Combo_AutoCompletar = xKeyAscii

Else

intPos = .SelStart

intLength = Len(.List(lngFind)) - Len(.Text)

.SelText = .SelText & Right$(.List(lngFind), intLength)

.SelStart = intPos

.SelLength = intLength

End If

End With

End Function

Private Sub cmbLogradouro_KeyPress(KeyAscii As Integer)

KeyAscii = Asc(UCase(Chr(KeyAscii)))

Page 52: Curso Visual Basic (Págs.222)

52

KeyAscii = Combo_AutoCompletar(cmbLogradouro, KeyAscii)

End Sub

Private Sub cmdAlterar_Click()

HabilitaCampos

txtRazao.SetFocus

cmdIncluir.Enabled = False

cmdFechar.Enabled = False

cmdCancelar.Enabled = True

cmdAlterar.Enabled = False

cmdGravar.Enabled = True

cmdExcluir.Enabled = False

cmdPrimeiro.Enabled = False

cmdAnterior.Enabled = False

cmdProximo.Enabled = False

cmdUltimo.Enabled = False

End Sub

Private Sub cmdAnterior_Click()

rsCadFornecedores.MovePrevious

If rsCadFornecedores.BOF Then

rsCadFornecedores.MoveFirst

End If

MostraRegistro

End Sub

Private Sub cmdCancelar_Click()

rsCadFornecedores.CancelUpdate

If rsCadFornecedores.RecordCount = 0 Then

LimpaRegistro

cmdExcluir.Enabled = False

cmdAlterar.Enabled = False

cmdPrimeiro.Enabled = False

cmdAnterior.Enabled = False

Page 53: Curso Visual Basic (Págs.222)

53

cmdProximo.Enabled = False

cmdUltimo.Enabled = False

cmdIncluir.Enabled = True

cmdFechar.Enabled = True

cmdCancelar.Enabled = False

cmdGravar.Enabled = False

Else

MostraRegistro

cmdGravar.Enabled = False

cmdCancelar.Enabled = False

cmdIncluir.Enabled = True

cmdFechar.Enabled = True

cmdPrimeiro.Enabled = True

cmdAnterior.Enabled = True

cmdProximo.Enabled = True

cmdUltimo.Enabled = True

cmdAlterar.Enabled = True

cmdExcluir.Enabled = True

End If

DesabilitaCampos

End Sub

Private Sub cmdExcluir_Click()

If MsgBox("Deseja excluir o cadastro?", vbYesNo + vbQuestion, "Atenção") = vbYes

Then

rsCadFornecedores.Delete

If rsCadFornecedores.RecordCount = 0 Then

LimpaRegistro

cmdExcluir.Enabled = False

cmdAlterar.Enabled = False

cmdPrimeiro.Enabled = False

cmdAnterior.Enabled = False

Page 54: Curso Visual Basic (Págs.222)

54

cmdProximo.Enabled = False

cmdUltimo.Enabled = False

Else

rsCadFornecedores.MoveNext

If rsCadFornecedores.EOF Then

rsCadFornecedores.MoveLast

End If

MostraRegistro

End If

End If

End Sub

Private Sub cmdFechar_Click()

Unload Me

End Sub

Private Sub cmdGravar_Click()

If txtRazao.Text = "" Then

MsgBox "A RAZÃO SOCIAL é obrigatória!", vbOKOnly + vbInformation, "Aviso"

txtRazao.SetFocus

Exit Sub

End If

If txtNome.Text = "" Then

MsgBox "O NOME é obrigatório!", vbOKOnly + vbInformation, "Aviso"

txtNome.SetFocus

Exit Sub

End If

If txtCEP.Text = "" Then

MsgBox "O CEP é obrigatório!", vbOKOnly + vbInformation, "Aviso"

txtCEP.SetFocus

Exit Sub

End If

Page 55: Curso Visual Basic (Págs.222)

55

If txtEndereco.Text = "" Then

MsgBox "O ENDEREÇO é obrigatório!", vbOKOnly + vbInformation, "Aviso"

txtEndereco.SetFocus

Exit Sub

End If

If txtCidade.Text = "" Then

MsgBox "A CIDADE é obrigatório!", vbOKOnly + vbInformation, "Aviso"

txtCidade.SetFocus

Exit Sub

End If

If txtEstado.Text = "" Then

MsgBox "O ESTADO é obrigatório!", vbOKOnly + vbInformation, "Aviso"

txtEstado.SetFocus

Exit Sub

End If

rsCadFornecedores("Cod_For") = txtCodigo.Text

rsCadFornecedores("Razao_For") = txtRazao.Text

rsCadFornecedores("NomeFantasia_For") = txtNome.Text

rsCadFornecedores("Logradouro_For") = cmbLogradouro.Text

rsCadFornecedores("Endereco_For") = txtEndereco.Text

rsCadFornecedores("Bairro_For") = txtBairro.Text

rsCadFornecedores("Compl_For") = txtComplemento.Text

rsCadFornecedores("Cidade_For") = txtCidade.Text

rsCadFornecedores("Cep_For") = txtCEP.Text

rsCadFornecedores("Estado_For") = txtEstado.Text

rsCadFornecedores("Cnpj_For") = txtCNPJ.Text

rsCadFornecedores("Fone1_For") = txtFone1.Text

rsCadFornecedores("Fone2_For") = txtFone2.Text

rsCadFornecedores("Ramal_For") = txtRamal.Text

rsCadFornecedores("Fax_For") = txtFax.Text

Page 56: Curso Visual Basic (Págs.222)

56

rsCadFornecedores("Email_For") = txtEmail.Text

rsCadFornecedores("Repre_For") = txtRepresentante.Text

rsCadFornecedores("InscEstadual_For") = txtInsc.Text

rsCadFornecedores.Update

DesabilitaCampos

MsgBox "Informações do Fornecedor salvos com sucesso!!!", vbOKOnly +

vbInformation, "Aviso"

cmdCancelar.Enabled = False

cmdIncluir.Enabled = True

cmdFechar.Enabled = True

cmdGravar.Enabled = False

cmdPrimeiro.Enabled = True

cmdAnterior.Enabled = True

cmdProximo.Enabled = True

cmdUltimo.Enabled = True

cmdAlterar.Enabled = True

cmdExcluir.Enabled = True

End Sub

Private Sub cmdIncluir_Click()

Dim Vcodigo As Integer

If rsCadFornecedores.RecordCount = 0 Then

rsCadFornecedores.AddNew

Vcodigo = 1

txtCodigo.Text = Format(Vcodigo, "00000")

Else

rsCadFornecedores.MoveLast

Vcodigo = rsCadFornecedores("Cod_For")

Vcodigo = Vcodigo + 1

rsCadFornecedores.AddNew

LimpaRegistro

txtCodigo.Text = Format(Vcodigo, "00000")

Page 57: Curso Visual Basic (Págs.222)

57

End If

HabilitaCampos

txtRazao.SetFocus

cmdCancelar.Enabled = True

cmdFechar.Enabled = False

cmdIncluir.Enabled = False

cmdGravar.Enabled = True

cmdPrimeiro.Enabled = False

cmdAnterior.Enabled = False

cmdProximo.Enabled = False

cmdUltimo.Enabled = False

cmdExcluir.Enabled = False

cmdAlterar.Enabled = False

End Sub

Private Sub cmdPrimeiro_Click()

rsCadFornecedores.MoveFirst

MostraRegistro

End Sub

Private Sub cmdProximo_Click()

rsCadFornecedores.MoveNext

If rsCadFornecedores.EOF Then

rsCadFornecedores.MoveLast

End If

MostraRegistro

End Sub

Private Sub cmdUltimo_Click()

rsCadFornecedores.MoveLast

MostraRegistro

End Sub

Page 58: Curso Visual Basic (Págs.222)

58

Private Sub Form_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then

SendKeys "{tab}"

End If

End Sub

Private Sub Form_Load()

rsCadFornecedores.Open "Fornecedores", mdiPrincipal.cnBiblioteca, adOpenKeyset,

adLockOptimistic, adCmdTable

If rsCadFornecedores.RecordCount > 0 Then

MostraRegistro

Else

cmdExcluir.Enabled = False

cmdAlterar.Enabled = False

cmdPrimeiro.Enabled = False

cmdAnterior.Enabled = False

cmdProximo.Enabled = False

cmdUltimo.Enabled = False

End If

DesabilitaCampos

End Sub

Private Sub Form_Unload(Cancel As Integer)

rsCadFornecedores.Close

End Sub

Private Sub txtCNPJ_KeyPress(KeyAscii As Integer)

If (KeyAscii < Asc("0") Or KeyAscii > Asc("9") And KeyAscii <> 8) Then

KeyAscii = 0

End If

End Sub

Page 59: Curso Visual Basic (Págs.222)

59

Private Sub txtEmail_KeyPress(KeyAscii As Integer)

KeyAscii = Asc(LCase(Chr(KeyAscii)))

End Sub

Private Sub DesabilitaCampos()

txtRazao.Enabled = False

txtNome.Enabled = False

cmbLogradouro.Enabled = False

txtCEP.Enabled = False

txtEndereco.Enabled = False

txtBairro.Enabled = False

txtCidade.Enabled = False

txtEstado.Enabled = False

txtFone1.Enabled = False

txtFone2.Enabled = False

txtRamal.Enabled = False

txtFax.Enabled = False

txtRepresentante.Enabled = False

txtInsc.Enabled = False

txtEmail.Enabled = False

txtCNPJ.Enabled = False

txtComplemento.Enabled = False

End Sub

Private Sub MostraRegistro()

If Not IsNull(rsCadFornecedores("Cod_For")) Then

txtCodigo.Text = Format(rsCadFornecedores("Cod_For"), "00000")

Else

txtCodigo.Text = Empty

End If

If Not IsNull(rsCadFornecedores("Razao_For")) Then

txtRazao.Text = rsCadFornecedores("Razao_For")

Else

Page 60: Curso Visual Basic (Págs.222)

60

txtRazao.Text = Empty

End If

If Not IsNull(rsCadFornecedores("NomeFantasia_For")) Then

txtNome.Text = rsCadFornecedores("NomeFantasia_For")

Else

txtNome.Text = Empty

End If

If Not IsNull(rsCadFornecedores("Logradouro_For")) Then

cmbLogradouro.Text = rsCadFornecedores("Logradouro_For")

Else

cmbLogradouro.Text = Empty

End If

If Not IsNull(rsCadFornecedores("Endereco_For")) Then

txtEndereco.Text = rsCadFornecedores("Endereco_For")

Else

txtEndereco.Text = Empty

End If

If Not IsNull(rsCadFornecedores("Bairro_For")) Then

txtBairro.Text = rsCadFornecedores("Bairro_For")

Else

txtBairro.Text = Empty

End If

If Not IsNull(rsCadFornecedores("Compl_For")) Then

txtComplemento.Text = rsCadFornecedores("Compl_For")

Else

txtComplemento.Text = Empty

End If

Page 61: Curso Visual Basic (Págs.222)

61

If Not IsNull(rsCadFornecedores("Cidade_For")) Then

txtCidade.Text = rsCadFornecedores("Cidade_For")

Else

txtCidade.Text = Empty

End If

If Not IsNull(rsCadFornecedores("Cep_For")) Then

txtCEP.Text = rsCadFornecedores("Cep_For")

Else

txtCEP.Text = Empty

End If

If Not IsNull(rsCadFornecedores("Estado_For")) Then

txtEstado.Text = rsCadFornecedores("Estado_For")

Else

txtEstado.Text = Empty

End If

If Not IsNull(rsCadFornecedores("Fax_For")) Then

txtFax.Text = rsCadFornecedores("Fax_For")

Else

txtFax.Text = Empty

End If

If Not IsNull(rsCadFornecedores("Repre_For")) Then

txtRepresentante.Text = rsCadFornecedores("Repre_For")

Else

txtRepresentante.Text = Empty

End If

If Not IsNull(rsCadFornecedores("Cnpj_For")) Then

txtCNPJ.Text = rsCadFornecedores("Cnpj_For")

Else

txtCNPJ.Text = Empty

Page 62: Curso Visual Basic (Págs.222)

62

End If

If Not IsNull(rsCadFornecedores("Fone1_For")) Then

txtFone1.Text = rsCadFornecedores("Fone1_For")

Else

txtFone1.Text = Empty

End If

If Not IsNull(rsCadFornecedores("Fone2_For")) Then

txtFone2.Text = rsCadFornecedores("Fone2_For")

Else

txtFone2.Text = Empty

End If

If Not IsNull(rsCadFornecedores("Ramal_For")) Then

txtRamal.Text = rsCadFornecedores("Ramal_For")

Else

txtRamal.Text = Empty

End If

If Not IsNull(rsCadFornecedores("InscEstadual_For")) Then

txtInsc.Text = rsCadFornecedores("InscEstadual_For")

Else

txtInsc.Text = Empty

End If

If Not IsNull(rsCadFornecedores("Email_For")) Then

txtEmail.Text = rsCadFornecedores("Email_For")

Else

txtEmail.Text = Empty

End If

End Sub

Private Sub HabilitaCampos()

txtRazao.Enabled = True

Page 63: Curso Visual Basic (Págs.222)

63

txtNome.Enabled = True

cmbLogradouro.Enabled = True

txtCEP.Enabled = True

txtEndereco.Enabled = True

txtBairro.Enabled = True

txtCidade.Enabled = True

txtEstado.Enabled = True

txtFone1.Enabled = True

txtFone2.Enabled = True

txtRamal.Enabled = True

txtFax.Enabled = True

txtRepresentante.Enabled = True

txtInsc.Enabled = True

txtEmail.Enabled = True

txtCNPJ.Enabled = True

txtComplemento.Enabled = True

End Sub

Private Sub LimpaRegistro()

txtCodigo.Text = ""

txtRazao.Text = ""

txtNome.Text = ""

cmbLogradouro.Text = ""

txtCEP.Text = ""

txtEndereco.Text = ""

txtBairro.Text = ""

txtCidade.Text = ""

txtEstado.Text = ""

txtFone1.Text = ""

txtFone2.Text = ""

txtRamal.Text = ""

txtFax.Text = ""

txtRepresentante.Text = ""

txtInsc.Text = ""

txtEmail.Text = ""

Page 64: Curso Visual Basic (Págs.222)

64

txtCNPJ.Text = ""

txtComplemento.Text = ""

End Sub

Private Sub txtBairro_KeyPress(KeyAscii As Integer)

KeyAscii = Asc(UCase(Chr(KeyAscii)))

End Sub

Private Sub txtCidade_KeyPress(KeyAscii As Integer)

KeyAscii = Asc(UCase(Chr(KeyAscii)))

End Sub

Private Sub txtComplemento_KeyPress(KeyAscii As Integer)

KeyAscii = Asc(UCase(Chr(KeyAscii)))

End Sub

Private Sub txtEndereco_KeyPress(KeyAscii As Integer)

KeyAscii = Asc(UCase(Chr(KeyAscii)))

End Sub

Private Sub txtEstado_KeyPress(KeyAscii As Integer)

If InStr("0123456789<>|\;,.?/[{}]+=§-_)(*&%$#@!*", Chr(KeyAscii)) <> 0 Then

KeyAscii = 0

End If

KeyAscii = Asc(UCase(Chr(KeyAscii)))

End Sub

Private Sub txtInsc_KeyPress(KeyAscii As Integer)

If (KeyAscii < Asc("0") Or KeyAscii > Asc("9") And KeyAscii <> 8) Then

KeyAscii = 0

End If

End Sub

Page 65: Curso Visual Basic (Págs.222)

65

Private Sub txtNome_KeyPress(KeyAscii As Integer)

KeyAscii = Asc(UCase(Chr(KeyAscii)))

End Sub

Private Sub txtRamal_KeyPress(KeyAscii As Integer)

If (KeyAscii < Asc("0") Or KeyAscii > Asc("9") And KeyAscii <> 8) Then

KeyAscii = 0

End If

End Sub

Private Sub txtRazao_KeyPress(KeyAscii As Integer)

If InStr("0123456789<>|\;,.?/[{}]+=§-_)(*&%$#@!*", Chr(KeyAscii)) <> 0 Then

KeyAscii = 0

End If

KeyAscii = Asc(UCase(Chr(KeyAscii)))

End Sub

Private Sub txtRepresentante_KeyPress(KeyAscii As Integer)

If InStr("0123456789<>|\;,.?/[{}]+=§-_)(*&%$#@!*", Chr(KeyAscii)) <> 0 Then

KeyAscii = 0

End If

KeyAscii = Asc(UCase(Chr(KeyAscii)))

End Sub

Page 66: Curso Visual Basic (Págs.222)

66

Private rsCadFuncionarios As New ADODB.Recordset

Public Foto As String

Private Const CB_FINDSTRING As Long = &H14C

Private Declare Function SendMessage Lib "USER32" Alias "SendMessageA"

(ByVal hWnd As Long, _

ByVal wMsg As Long, _

ByVal wParam As Long, _

lParam As Any) As Long

Public Function Combo_AutoCompletar(xCombo As ComboBox, ByVal xKeyAscii As

Long, Optional ByVal xUpperCase As Boolean = True) As Long

Dim lngFind As Long, intPos As Long, intLength As Long, tStr As String

With xCombo

Page 67: Curso Visual Basic (Págs.222)

67

If xKeyAscii = 8 Then

If .SelStart = 0 Then Exit Function

.SelStart = .SelStart - 1

.SelLength = Len(.Text)

.SelText = vbNullString

Else

intPos = .SelStart

tStr = .Text

.SelText = (Chr$(xKeyAscii))

' .SelText = IIf(xUpperCase, _

' UCase$(Chr$(xKeyAscii)), _

' LCase$(Chr$(xKeyAscii)))

End If

lngFind = SendMessage(.hWnd, CB_FINDSTRING, 0, ByVal .Text)

If lngFind = -1 Then

.Text = tStr

.SelStart = intPos

.SelLength = (Len(.Text) - intPos)

Combo_AutoCompletar = xKeyAscii

Else

intPos = .SelStart

intLength = Len(.List(lngFind)) - Len(.Text)

.SelText = .SelText & Right$(.List(lngFind), intLength)

.SelStart = intPos

.SelLength = intLength

End If

End With

End Function

Private Sub cmbLogradouro_KeyPress(KeyAscii As Integer)

KeyAscii = Asc(UCase(Chr(KeyAscii)))

KeyAscii = Combo_AutoCompletar(cmbLogradouro, KeyAscii)

End Sub

Page 68: Curso Visual Basic (Págs.222)

68

Private Sub cmbSexo_KeyPress(KeyAscii As Integer)

KeyAscii = Asc(UCase(Chr(KeyAscii)))

KeyAscii = Combo_AutoCompletar(cmbSexo, KeyAscii)

End Sub

Private Sub cmdAlterar_Click()

HabilitaCampos

txtNome.SetFocus

cmdIncluir.Enabled = False

cmdFechar.Enabled = False

cmdCancelar.Enabled = True

cmdAlterar.Enabled = False

cmdGravar.Enabled = True

cmdExcluir.Enabled = False

cmdPrimeiro.Enabled = False

cmdAnterior.Enabled = False

cmdProximo.Enabled = False

cmdUltimo.Enabled = False

cmdIncluirFoto.Visible = True

End Sub

Private Sub cmdAnterior_Click()

rsCadFuncionarios.MovePrevious

If rsCadFuncionarios.BOF Then

rsCadFuncionarios.MoveFirst

End If

MostraRegistro

End Sub

Private Sub cmdCancelar_Click()

rsCadFuncionarios.CancelUpdate

If rsCadFuncionarios.RecordCount = 0 Then

LimpaRegistro

Page 69: Curso Visual Basic (Págs.222)

69

cmdExcluir.Enabled = False

cmdAlterar.Enabled = False

cmdPrimeiro.Enabled = False

cmdAnterior.Enabled = False

cmdProximo.Enabled = False

cmdUltimo.Enabled = False

cmdIncluir.Enabled = True

cmdFechar.Enabled = True

cmdCancelar.Enabled = False

cmdGravar.Enabled = False

cmdIncluirFoto.Visible = False

Else

MostraRegistro

cmdGravar.Enabled = False

cmdCancelar.Enabled = False

cmdIncluir.Enabled = True

cmdFechar.Enabled = True

cmdPrimeiro.Enabled = True

cmdAnterior.Enabled = True

cmdProximo.Enabled = True

cmdUltimo.Enabled = True

cmdAlterar.Enabled = True

cmdExcluir.Enabled = True

cmdIncluirFoto.Visible = False

End If

DesabilitaCampos

End Sub

Private Sub cmdExcluir_Click()

If MsgBox("Deseja excluir o cadastro?", vbYesNo + vbQuestion, "Atenção") = vbYes

Then

rsCadFuncionarios.Delete

Page 70: Curso Visual Basic (Págs.222)

70

If rsCadFuncionarios.RecordCount = 0 Then

LimpaRegistro

cmdExcluir.Enabled = False

cmdAlterar.Enabled = False

cmdPrimeiro.Enabled = False

cmdAnterior.Enabled = False

cmdProximo.Enabled = False

cmdUltimo.Enabled = False

Else

rsCadFuncionarios.MoveNext

If rsCadFuncionarios.EOF Then

rsCadFuncionarios.MoveLast

End If

MostraRegistro

End If

End If

End Sub

Private Sub cmdFechar_Click()

Unload Me

End Sub

Private Sub cmdGravar_Click()

If txtNome.Text = "" Then

MsgBox "O NOME é obrigatório!", vbOKOnly + vbInformation, "Aviso"

txtNome.SetFocus

Exit Sub

End If

If txtCEP.Text = "" Then

MsgBox "O CEP é obrigatório!", vbOKOnly + vbInformation, "Aviso"

txtCEP.SetFocus

Exit Sub

End If

Page 71: Curso Visual Basic (Págs.222)

71

If txtEndereco.Text = "" Then

MsgBox "O ENDEREÇO é obrigatório!", vbOKOnly + vbInformation, "Aviso"

txtEndereco.SetFocus

Exit Sub

End If

If txtCidade.Text = "" Then

MsgBox "A CIDADE é obrigatório!", vbOKOnly + vbInformation, "Aviso"

txtCidade.SetFocus

Exit Sub

End If

If txtEstado.Text = "" Then

MsgBox "O ESTADO é obrigatório!", vbOKOnly + vbInformation, "Aviso"

txtEstado.SetFocus

Exit Sub

End If

rsCadFuncionarios("Cod_Fun") = txtCodigo.Text

rsCadFuncionarios("Nome_Fun") = txtNome.Text

rsCadFuncionarios("Logradouro_Fun") = cmbLogradouro.Text

rsCadFuncionarios("Endereco_Fun") = txtEndereco.Text

rsCadFuncionarios("Bairro_Fun") = txtBairro.Text

rsCadFuncionarios("Compl_Fun") = txtComplemento.Text

rsCadFuncionarios("Cidade_Fun") = txtCidade.Text

rsCadFuncionarios("Cep_Fun") = txtCEP.Text

rsCadFuncionarios("Estado_Fun") = txtEstado.Text

rsCadFuncionarios("RG_Fun") = txtRG.Text

rsCadFuncionarios("DataNasc_Fun") = txtDataNasc.Text

rsCadFuncionarios("Sexo_Fun") = cmbSexo.Text

rsCadFuncionarios("Cpf_Fun") = txtCPF.Text

rsCadFuncionarios("Fone1_Fun") = txtFone1.Text

rsCadFuncionarios("Fone2_Fun") = txtFone2.Text

Page 72: Curso Visual Basic (Págs.222)

72

rsCadFuncionarios("DataAdm_Fun") = txtDataAdm.Text

rsCadFuncionarios("Cargo_Fun") = txtCargo.Text

rsCadFuncionarios("Email_Fun") = txtEmail.Text

If Not (Foto = "") Then

rsCadFuncionarios("Fotografia_Fun") = Foto

End If

rsCadFuncionarios.Update

DesabilitaCampos

MsgBox "Dados do Funcionário salvos com sucesso!!!", vbOKOnly + vbInformation,

"Aviso"

cmdCancelar.Enabled = False

cmdIncluir.Enabled = True

cmdFechar.Enabled = True

cmdGravar.Enabled = False

cmdPrimeiro.Enabled = True

cmdAnterior.Enabled = True

cmdProximo.Enabled = True

cmdUltimo.Enabled = True

cmdAlterar.Enabled = True

cmdExcluir.Enabled = True

cmdIncluirFoto.Visible = False

End Sub

Private Sub cmdIncluir_Click()

Dim Vcodigo As Integer

If rsCadFuncionarios.RecordCount = 0 Then

rsCadFuncionarios.AddNew

Vcodigo = 1

txtCodigo.Text = Format(Vcodigo, "00000")

Else

rsCadFuncionarios.MoveLast

Page 73: Curso Visual Basic (Págs.222)

73

Vcodigo = rsCadFuncionarios("Cod_Fun")

Vcodigo = Vcodigo + 1

rsCadFuncionarios.AddNew

LimpaRegistro

txtCodigo.Text = Format(Vcodigo, "00000")

End If

HabilitaCampos

txtNome.SetFocus

cmdCancelar.Enabled = True

cmdFechar.Enabled = False

cmdIncluir.Enabled = False

cmdGravar.Enabled = True

cmdPrimeiro.Enabled = False

cmdAnterior.Enabled = False

cmdProximo.Enabled = False

cmdUltimo.Enabled = False

cmdExcluir.Enabled = False

cmdAlterar.Enabled = False

cmdIncluirFoto.Visible = True

imgFoto.Picture = LoadPicture("")

End Sub

Private Sub cmdIncluirFoto_Click()

Dim Vfiltro As String

Foto = ""

Vfiltro = "Arquivos BMP (*.BMP) (*.bmp) Todos Arquivos /*.*"

CommonDialog1.Filter = Vfiltro

CommonDialog1.DefaultExt = "BMP"

CommonDialog1.ShowOpen

Foto = CommonDialog1.FileName

If Not Foto = Empty Then

Page 74: Curso Visual Basic (Págs.222)

74

imgFoto.Picture = LoadPicture(Foto)

Else

imgFoto.Picture = LoadPicture("")

End If

End Sub

Private Sub cmdPrimeiro_Click()

rsCadFuncionarios.MoveFirst

MostraRegistro

End Sub

Private Sub cmdProximo_Click()

rsCadFuncionarios.MoveNext

If rsCadFuncionarios.EOF Then

rsCadFuncionarios.MoveLast

End If

MostraRegistro

End Sub

Private Sub cmdUltimo_Click()

rsCadFuncionarios.MoveLast

MostraRegistro

End Sub

Private Sub Form_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then

SendKeys "{tab}"

End If

End Sub

Private Sub Form_Load()

rsCadFuncionarios.Open "Funcionarios", mdiPrincipal.cnBiblioteca, adOpenKeyset,

adLockOptimistic, adCmdTable

Page 75: Curso Visual Basic (Págs.222)

75

If rsCadFuncionarios.RecordCount > 0 Then

MostraRegistro

Else

cmdExcluir.Enabled = False

cmdAlterar.Enabled = False

cmdPrimeiro.Enabled = False

cmdAnterior.Enabled = False

cmdProximo.Enabled = False

cmdUltimo.Enabled = False

End If

DesabilitaCampos

End Sub

Private Sub Form_Unload(Cancel As Integer)

rsCadFuncionarios.Close

End Sub

Private Sub txtCargo_KeyPress(KeyAscii As Integer)

If InStr("0123456789<>|\;,.?/[{}]+=§-_)(*&%$#@!*", Chr(KeyAscii)) <> 0 Then

KeyAscii = 0

End If

KeyAscii = Asc(UCase(Chr(KeyAscii)))

End Sub

Private Sub txtCPF_KeyPress(KeyAscii As Integer)

If (KeyAscii < Asc("0") Or KeyAscii > Asc("9") And KeyAscii <> 8) Then

KeyAscii = 0

End If

End Sub

Private Sub txtEmail_KeyPress(KeyAscii As Integer)

KeyAscii = Asc(LCase(Chr(KeyAscii)))

End Sub

Page 76: Curso Visual Basic (Págs.222)

76

Private Sub DesabilitaCampos()

txtNome.Enabled = False

cmbLogradouro.Enabled = False

txtCEP.Enabled = False

txtEndereco.Enabled = False

txtBairro.Enabled = False

txtCidade.Enabled = False

txtEstado.Enabled = False

txtFone1.Enabled = False

txtFone2.Enabled = False

txtRG.Enabled = False

txtDataNasc.Enabled = False

txtDataAdm.Enabled = False

cmbSexo.Enabled = False

txtEmail.Enabled = False

txtCPF.Enabled = False

txtComplemento.Enabled = False

txtCargo.Enabled = False

End Sub

Private Sub MostraRegistro()

Dim NomeFoto As String

If Not IsNull(rsCadFuncionarios("Cod_Fun")) Then

txtCodigo.Text = Format(rsCadFuncionarios("Cod_Fun"), "00000")

Else

txtCodigo.Text = Empty

End If

If Not IsNull(rsCadFuncionarios("Nome_Fun")) Then

txtNome.Text = rsCadFuncionarios("Nome_Fun")

Else

txtNome.Text = Empty

Page 77: Curso Visual Basic (Págs.222)

77

End If

If Not IsNull(rsCadFuncionarios("Logradouro_Fun")) Then

cmbLogradouro.Text = rsCadFuncionarios("Logradouro_Fun")

Else

cmbLogradouro.Text = Empty

End If

If Not IsNull(rsCadFuncionarios("Endereco_Fun")) Then

txtEndereco.Text = rsCadFuncionarios("Endereco_Fun")

Else

txtEndereco.Text = Empty

End If

If Not IsNull(rsCadFuncionarios("Bairro_Fun")) Then

txtBairro.Text = rsCadFuncionarios("Bairro_Fun")

Else

txtBairro.Text = Empty

End If

If Not IsNull(rsCadFuncionarios("Compl_Fun")) Then

txtComplemento.Text = rsCadFuncionarios("Compl_Fun")

Else

txtComplemento.Text = Empty

End If

If Not IsNull(rsCadFuncionarios("Cidade_Fun")) Then

txtCidade.Text = rsCadFuncionarios("Cidade_Fun")

Else

txtCidade.Text = Empty

End If

If Not IsNull(rsCadFuncionarios("Cep_Fun")) Then

Page 78: Curso Visual Basic (Págs.222)

78

txtCEP.Text = rsCadFuncionarios("Cep_Fun")

Else

txtCEP.Text = Empty

End If

If Not IsNull(rsCadFuncionarios("Estado_Fun")) Then

txtEstado.Text = rsCadFuncionarios("Estado_Fun")

Else

txtEstado.Text = Empty

End If

If Not IsNull(rsCadFuncionarios("DataNasc_Fun")) Then

txtDataNasc.Text = rsCadFuncionarios("DataNasc_Fun")

Else

txtDataNasc.Text = Empty

End If

If Not IsNull(rsCadFuncionarios("Sexo_Fun")) Then

cmbSexo.Text = rsCadFuncionarios("Sexo_Fun")

Else

cmbSexo.Text = Empty

End If

If Not IsNull(rsCadFuncionarios("Cpf_Fun")) Then

txtCPF.Text = rsCadFuncionarios("Cpf_Fun")

Else

txtCPF.Text = Empty

End If

If Not IsNull(rsCadFuncionarios("Fone1_Fun")) Then

txtFone1.Text = rsCadFuncionarios("Fone1_Fun")

Else

txtFone1.Text = Empty

End If

Page 79: Curso Visual Basic (Págs.222)

79

If Not IsNull(rsCadFuncionarios("Fone2_Fun")) Then

txtFone2.Text = rsCadFuncionarios("Fone2_Fun")

Else

txtFone2.Text = Empty

End If

If Not IsNull(rsCadFuncionarios("Rg_Fun")) Then

txtRG.Text = rsCadFuncionarios("Rg_Fun")

Else

txtRG.Text = Empty

End If

If Not IsNull(rsCadFuncionarios("DataAdm_Fun")) Then

txtDataAdm.Text = rsCadFuncionarios("DataAdm_Fun")

Else

txtDataAdm.Text = Empty

End If

If Not IsNull(rsCadFuncionarios("Email_Fun")) Then

txtEmail.Text = rsCadFuncionarios("Email_Fun")

Else

txtEmail.Text = Empty

End If

If Not IsNull(rsCadFuncionarios("Cargo_Fun")) Then

txtCargo.Text = rsCadFuncionarios("Cargo_Fun")

Else

txtCargo.Text = Empty

End If

If Not IsNull(rsCadFuncionarios("Fotografia_Fun")) Then

NomeFoto = rsCadFuncionarios("Fotografia_Fun")

imgFoto.Picture = LoadPicture(NomeFoto)

Page 80: Curso Visual Basic (Págs.222)

80

Else

NomeFoto = Empty

imgFoto.Picture = LoadPicture("")

End If

End Sub

Private Sub HabilitaCampos()

txtNome.Enabled = True

cmbLogradouro.Enabled = True

txtCEP.Enabled = True

txtEndereco.Enabled = True

txtBairro.Enabled = True

txtCidade.Enabled = True

txtEstado.Enabled = True

txtFone1.Enabled = True

txtFone2.Enabled = True

txtRG.Enabled = True

txtDataNasc.Enabled = True

txtDataAdm.Enabled = True

cmbSexo.Enabled = True

txtEmail.Enabled = True

txtCPF.Enabled = True

txtComplemento.Enabled = True

txtCargo.Enabled = True

End Sub

Private Sub LimpaRegistro()

txtCodigo.Text = ""

txtNome.Text = ""

cmbLogradouro.Text = ""

txtCEP.Text = ""

txtEndereco.Text = ""

txtBairro.Text = ""

txtCidade.Text = ""

txtEstado.Text = ""

txtFone1.Text = ""

Page 81: Curso Visual Basic (Págs.222)

81

txtFone2.Text = ""

txtRG.Text = ""

txtDataNasc.Text = ""

txtDataAdm.Text = ""

cmbSexo.Text = ""

txtEmail.Text = ""

txtCPF.Text = ""

txtComplemento.Text = ""

txtCargo.Text = ""

End Sub

Private Sub txtBairro_KeyPress(KeyAscii As Integer)

KeyAscii = Asc(UCase(Chr(KeyAscii)))

End Sub

Private Sub txtCidade_KeyPress(KeyAscii As Integer)

KeyAscii = Asc(UCase(Chr(KeyAscii)))

End Sub

Private Sub txtComplemento_KeyPress(KeyAscii As Integer)

KeyAscii = Asc(UCase(Chr(KeyAscii)))

End Sub

Private Sub txtEndereco_KeyPress(KeyAscii As Integer)

KeyAscii = Asc(UCase(Chr(KeyAscii)))

End Sub

Private Sub txtEstado_KeyPress(KeyAscii As Integer)

If InStr("0123456789<>|\;,.?/[{}]+=§-_)(*&%$#@!*", Chr(KeyAscii)) <> 0 Then

KeyAscii = 0

End If

KeyAscii = Asc(UCase(Chr(KeyAscii)))

End Sub

Page 82: Curso Visual Basic (Págs.222)

82

Private Sub txtNome_KeyPress(KeyAscii As Integer)

If InStr("0123456789<>|\;,.?/[{}]+=§-_)(*&%$#@!*", Chr(KeyAscii)) <> 0 Then

KeyAscii = 0

End If

KeyAscii = Asc(UCase(Chr(KeyAscii)))

End Sub

Private rsCadProdutos As New ADODB.Recordset

Private Sub cmdAlterar_Click()

HabilitaCampos

txtNome.SetFocus

cmdIncluir.Enabled = False

cmdFechar.Enabled = False

cmdCancelar.Enabled = True

cmdAlterar.Enabled = False

cmdGravar.Enabled = True

cmdExcluir.Enabled = False

cmdPrimeiro.Enabled = False

Page 83: Curso Visual Basic (Págs.222)

83

cmdAnterior.Enabled = False

cmdProximo.Enabled = False

cmdUltimo.Enabled = False

End Sub

Private Sub cmdAnterior_Click()

rsCadProdutos.MovePrevious

If rsCadProdutos.BOF Then

rsCadProdutos.MoveFirst

End If

MostraRegistro

End Sub

Private Sub cmdCancelar_Click()

rsCadProdutos.CancelUpdate

If rsCadProdutos.RecordCount = 0 Then

LimpaRegistro

cmdExcluir.Enabled = False

cmdAlterar.Enabled = False

cmdPrimeiro.Enabled = False

cmdAnterior.Enabled = False

cmdProximo.Enabled = False

cmdUltimo.Enabled = False

cmdIncluir.Enabled = True

cmdFechar.Enabled = True

cmdCancelar.Enabled = False

cmdGravar.Enabled = False

Else

MostraRegistro

cmdGravar.Enabled = False

cmdCancelar.Enabled = False

cmdIncluir.Enabled = True

cmdFechar.Enabled = True

cmdPrimeiro.Enabled = True

Page 84: Curso Visual Basic (Págs.222)

84

cmdAnterior.Enabled = True

cmdProximo.Enabled = True

cmdUltimo.Enabled = True

cmdAlterar.Enabled = True

cmdExcluir.Enabled = True

End If

DesabilitaCampos

End Sub

Private Sub cmdExcluir_Click()

If MsgBox("Deseja excluir o cadastro?", vbYesNo + vbQuestion, "Atenção") = vbYes

Then

rsCadProdutos.Delete

If rsCadProdutos.RecordCount = 0 Then

LimpaRegistro

cmdExcluir.Enabled = False

cmdAlterar.Enabled = False

cmdPrimeiro.Enabled = False

cmdAnterior.Enabled = False

cmdProximo.Enabled = False

cmdUltimo.Enabled = False

Else

rsCadProdutos.MoveNext

If rsCadProdutos.EOF Then

rsCadProdutos.MoveLast

End If

MostraRegistro

End If

End If

End Sub

Private Sub cmdFechar_Click()

Page 85: Curso Visual Basic (Págs.222)

85

Unload Me

End Sub

Private Sub cmdGravar_Click()

If txtNome.Text = "" Then

MsgBox "O NOME é obrigatório!", vbOKOnly + vbInformation, "Aviso"

txtNome.SetFocus

Exit Sub

End If

If txtDescricao.Text = "" Then

MsgBox "A DESCRIÇÃO é obrigatória!", vbOKOnly + vbInformation, "Aviso"

txtDescricao.SetFocus

Exit Sub

End If

If txtValor.Text = "" Then

MsgBox "O VALOR é obrigatório!", vbOKOnly + vbInformation, "Aviso"

txtValor.SetFocus

Exit Sub

End If

If txtCodFor.Text = "" Then

MsgBox "O Código do Fornecedor é obrigatório!", vbOKOnly + vbInformation,

"Aviso"

txtCodFor.SetFocus

Exit Sub

End If

rsCadProdutos("Cod_Pro") = txtCodigo.Text

rsCadProdutos("Nome_Pro") = txtNome.Text

rsCadProdutos("Desc_Pro") = txtDescricao.Text

rsCadProdutos("Valor_Pro") = txtValor.Text

rsCadProdutos("CodFor_Pro") = txtCodFor.Text

Page 86: Curso Visual Basic (Págs.222)

86

rsCadProdutos.Update

DesabilitaCampos

MsgBox "Dados do Produto salvos com sucesso!!!", vbOKOnly + vbInformation,

"Aviso"

cmdCancelar.Enabled = False

cmdIncluir.Enabled = True

cmdFechar.Enabled = True

cmdGravar.Enabled = False

cmdPrimeiro.Enabled = True

cmdAnterior.Enabled = True

cmdProximo.Enabled = True

cmdUltimo.Enabled = True

cmdAlterar.Enabled = True

cmdExcluir.Enabled = True

End Sub

Private Sub cmdIncluir_Click()

Dim Vcodigo As Integer

If rsCadProdutos.RecordCount = 0 Then

rsCadProdutos.AddNew

Vcodigo = 1

txtCodigo.Text = Format(Vcodigo, "00000")

Else

rsCadProdutos.MoveLast

Vcodigo = rsCadProdutos("Cod_Pro")

Vcodigo = Vcodigo + 1

rsCadProdutos.AddNew

LimpaRegistro

txtCodigo.Text = Format(Vcodigo, "00000")

End If

HabilitaCampos

Page 87: Curso Visual Basic (Págs.222)

87

txtNome.SetFocus

cmdCancelar.Enabled = True

cmdFechar.Enabled = False

cmdIncluir.Enabled = False

cmdGravar.Enabled = True

cmdPrimeiro.Enabled = False

cmdAnterior.Enabled = False

cmdProximo.Enabled = False

cmdUltimo.Enabled = False

cmdExcluir.Enabled = False

cmdAlterar.Enabled = False

End Sub

Private Sub cmdPrimeiro_Click()

rsCadProdutos.MoveFirst

MostraRegistro

End Sub

Private Sub cmdProximo_Click()

rsCadProdutos.MoveNext

If rsCadProdutos.EOF Then

rsCadProdutos.MoveLast

End If

MostraRegistro

End Sub

Private Sub cmdUltimo_Click()

rsCadProdutos.MoveLast

MostraRegistro

End Sub

Private Sub Form_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then

Page 88: Curso Visual Basic (Págs.222)

88

SendKeys "{tab}"

End If

End Sub

Private Sub Form_Load()

rsCadProdutos.Open "Produtos", mdiPrincipal.cnBiblioteca, adOpenKeyset,

adLockOptimistic, adCmdTable

If rsCadProdutos.RecordCount > 0 Then

MostraRegistro

Else

cmdExcluir.Enabled = False

cmdAlterar.Enabled = False

cmdPrimeiro.Enabled = False

cmdAnterior.Enabled = False

cmdProximo.Enabled = False

cmdUltimo.Enabled = False

End If

DesabilitaCampos

End Sub

Private Sub Form_Unload(Cancel As Integer)

rsCadProdutos.Close

End Sub

Private Sub DesabilitaCampos()

txtNome.Enabled = False

txtDescricao.Enabled = False

txtValor.Enabled = False

txtCodFor.Enabled = False

End Sub

Private Sub MostraRegistro()

If Not IsNull(rsCadProdutos("Cod_Pro")) Then

Page 89: Curso Visual Basic (Págs.222)

89

txtCodigo.Text = Format(rsCadProdutos("Cod_Pro"), "00000")

Else

txtCodigo.Text = Empty

End If

If Not IsNull(rsCadProdutos("Nome_Pro")) Then

txtNome.Text = rsCadProdutos("Nome_Pro")

Else

txtNome.Text = Empty

End If

If Not IsNull(rsCadProdutos("Desc_Pro")) Then

txtDescricao.Text = rsCadProdutos("Desc_Pro")

Else

txtDescricao.Text = Empty

End If

If Not IsNull(rsCadProdutos("Valor_Pro")) Then

txtValor.Text = Format(rsCadProdutos("Valor_Pro"), "currency")

Else

txtValor.Text = Empty

End If

If Not IsNull(rsCadProdutos("CodFor_Pro")) Then

txtCodFor.Text = rsCadProdutos("CodFor_Pro")

Else

txtCodFor.Text = Empty

End If

End Sub

Private Sub HabilitaCampos()

txtNome.Enabled = True

txtDescricao.Enabled = True

Page 90: Curso Visual Basic (Págs.222)

90

txtValor.Enabled = True

txtCodFor.Enabled = True

End Sub

Private Sub LimpaRegistro()

txtCodigo.Text = ""

txtNome.Text = ""

txtDescricao.Text = ""

txtValor.Text = ""

txtCodFor.Text = ""

End Sub

Private Sub txtCodFor_KeyPress(KeyAscii As Integer)

If (KeyAscii < Asc("0") Or KeyAscii > Asc("9") And KeyAscii <> 8) Then

KeyAscii = 0

End If

End Sub

Private Sub txtDescricao_KeyPress(KeyAscii As Integer)

KeyAscii = Asc(UCase(Chr(KeyAscii)))

End Sub

Private Sub txtNome_KeyPress(KeyAscii As Integer)

If InStr("0123456789<>|\;,.?/[{}]+=§-_)(*&%$#@!*", Chr(KeyAscii)) <> 0 Then

KeyAscii = 0

End If

KeyAscii = Asc(UCase(Chr(KeyAscii)))

End Sub

Private Sub txtValor_KeyPress(KeyAscii As Integer)

If (KeyAscii < Asc("0") Or KeyAscii > Asc("9") And KeyAscii <> 8) Then

KeyAscii = 0

End If

End Sub

Page 91: Curso Visual Basic (Págs.222)

91

Private Sub txtValor_LostFocus()

txtValor.Text = Format(txtValor.Text, "currency")

End Sub

Private Vfrase As String

Private rsConClientes As New ADODB.Recordset

Private Sub cboTipo_Click()

txtParametro.Text = ""

fgConsultaCli.Clear

With fgConsultaCli

.ColWidth(0) = 800

.ColWidth(1) = 3500

.ColWidth(2) = 3500

.ColWidth(3) = 2000

.ColWidth(4) = 800

.Rows = 1

.TextArray(0) = "Código"

.TextArray(1) = "Nome"

Page 92: Curso Visual Basic (Págs.222)

92

.TextArray(2) = "Endereço"

.TextArray(3) = "Cidade"

.TextArray(4) = "Estado"

End With

If cboTipo.Text = "Todos" Then

txtParametro.Enabled = False

Else

txtParametro.Enabled = True

End If

End Sub

Private Sub fgConsultaCli_DblClick()

If fgConsultaCli.Row = 0 Then

Exit Sub

End If

frmCadClientes.Show

frmCadClientes.Left = 3000

frmCadClientes.Top = 800

End Sub

Private Sub fgConsultaCli_MouseMove(Button As Integer, Shift As Integer, x As

Single, y As Single)

If fgConsultaCli.Rows > 1 Then

If fgConsultaCli.Row <> fgConsultaCli.MouseRow And

fgConsultaCli.MouseRow > 0 Then

fgConsultaCli.Col = 0

fgConsultaCli.Row = fgConsultaCli.MouseRow

fgConsultaCli.ColSel = fgConsultaCli.Cols - 1

End If

End If

End Sub

Page 93: Curso Visual Basic (Págs.222)

93

Private Sub Form_Load()

Toolbar1.Left = 11055

With fgConsultaCli

.ColWidth(0) = 800

.ColWidth(1) = 3500

.ColWidth(2) = 3500

.ColWidth(3) = 2000

.ColWidth(4) = 800

.Rows = 1

.TextArray(0) = "Código"

.TextArray(1) = "Nome"

.TextArray(2) = "Endereço"

.TextArray(3) = "Cidade"

.TextArray(4) = "Estado"

End With

End Sub

Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)

If Button.Key = "Sair" Then

Unload Me

ElseIf Button.Key = "Pesquisar" Then

If cboTipo.Text = "Escolha o tipo de Consulta" Then

MsgBox "Escolha o Tipo de Consulta desejada", vbOKOnly + vbInformation,

"Atenção"

cboTipo.SetFocus

Exit Sub

End If

If cboTipo.Text = "Por Código" Then

If txtParametro.Text = "" Then

MsgBox "Entre com o parametro para realizar a consulta", vbOKOnly +

vbInformation, "Atenção"

txtParametro.SetFocus

Page 94: Curso Visual Basic (Págs.222)

94

Exit Sub

End If

If Not IsNumeric(txtParametro.Text) Then

MsgBox "Entre com um número para o código!", vbOKOnly + vbInformation,

"Atenção"

txtParametro.Text = ""

txtParametro.SetFocus

Exit Sub

End If

Dim VConCodigo As Integer

VConCodigo = CInt(txtParametro.Text)

fgConsultaCli.Clear

Vfrase = "Select * from Clientes Where Cod_Cli=" & VConCodigo

Set rsConClientes = mdiPrincipal.cnBiblioteca.Execute(Vfrase)

EncheGrid

If rsConClientes.BOF = True And rsConClientes.EOF = True Then

'cliente não cadastrado

MsgBox "Cliente Não Cadastrado!", vbInformation, "Atenção"

txtParametro.Text = ""

'fecha a conexão

rsConClientes.Close

End If

ElseIf cboTipo.Text = "Por Nome" Then

Dim VConNome As String

If txtParametro.Text = "" Then

MsgBox "Entre com o parametro para realizar a consulta", vbOKOnly +

vbInformation, "Atenção"

txtParametro.SetFocus

Exit Sub

Page 95: Curso Visual Basic (Págs.222)

95

End If

VConNome = Chr(39) & CStr(txtParametro.Text) & "'"

fgConsultaCli.Clear

Vfrase = "Select * from Clientes Where Nome_Cli LIKE" & VConNome

Set rsConClientes = mdiPrincipal.cnBiblioteca.Execute(Vfrase)

EncheGrid

If rsConClientes.BOF = True And rsConClientes.EOF = True Then

'cliente não cadastrado

MsgBox "Cliente Não Cadastrado!", vbInformation, "Atenção"

txtParametro.Text = ""

'fecha a conexão

rsConClientes.Close

End If

ElseIf cboTipo.Text = "Todos" Then

Vfrase = "Select * from Clientes order by Nome_Cli"

Set rsConClientes = mdiPrincipal.cnBiblioteca.Execute(Vfrase)

' chama a funcao que preenche o grid

EncheGrid

If rsConClientes.BOF = True And rsConClientes.EOF = True Then

'cliente não cadastrado

MsgBox "Não há Cliente Cadastrado!", vbInformation, "Atenção"

txtParametro.Text = ""

'fecha a conexão

rsConClientes.Close

End If

End If

ElseIf Button.Key = "Nova" Then

fgConsultaCli.Clear

cboTipo.Text = "Escolha o tipo de Consulta"

Page 96: Curso Visual Basic (Págs.222)

96

txtParametro.Text = ""

With fgConsultaCli

.ColWidth(0) = 800

.ColWidth(1) = 3500

.ColWidth(2) = 3500

.ColWidth(3) = 2000

.ColWidth(4) = 800

.Rows = 1

.TextArray(0) = "Código"

.TextArray(1) = "Nome"

.TextArray(2) = "Endereço"

.TextArray(3) = "Cidade"

.TextArray(4) = "Estado"

End With

cboTipo.SetFocus

End If

End Sub

Private Sub EncheGrid()

' forma o cabeçalho do fexgrid

With fgConsultaCli

.ColWidth(0) = 800

.ColWidth(1) = 3500

.ColWidth(2) = 3500

.ColWidth(3) = 2000

.ColWidth(4) = 800

.Rows = 1

.TextArray(0) = "Código"

.TextArray(1) = "Nome"

.TextArray(2) = "Endereço"

.TextArray(3) = "Cidade"

.TextArray(4) = "Estado"

End With

Page 97: Curso Visual Basic (Págs.222)

97

Do While Not rsConClientes.EOF

fgConsultaCli.AddItem rsConClientes("Cod_Cli") & Chr(9) &

rsConClientes("Nome_Cli") & Chr(9) & rsConClientes("Endereco_Cli") & Chr(9) &

rsConClientes("Cidade_Cli") & Chr(9) & rsConClientes("Estado_Cli")

rsConClientes.MoveNext

Loop

End Sub

Private Sub txtParametro_KeyPress(KeyAscii As Integer)

If cboTipo.Text = "Por Código" Then

If (KeyAscii < Asc("0") Or KeyAscii > Asc("9") And KeyAscii <> 8) Then

KeyAscii = 0

End If

End If

If cboTipo.Text = "Por Nome" Then

If InStr("0123456789<>|\;,.?/[{}]+=§-_)(*&%$#@!*", Chr(KeyAscii)) <> 0 Then

KeyAscii = 0

End If

End If

End Sub

Page 98: Curso Visual Basic (Págs.222)

98

Private Vfrase As String

Private rsConCompras As New ADODB.Recordset

Private Sub cboTipo_Click()

txtParametro.Text = ""

fgConsultaCom.Clear

With fgConsultaCom

.ColWidth(0) = 800

.ColWidth(1) = 1500

.ColWidth(2) = 1500

.ColWidth(3) = 1000

.ColWidth(4) = 1800

.Rows = 1

.TextArray(0) = "Código"

.TextArray(1) = "Nº da Nota Fiscal"

.TextArray(2) = "Código do Produto"

.TextArray(3) = "Quantidade"

.TextArray(4) = "Código do Fornecedor"

Page 99: Curso Visual Basic (Págs.222)

99

End With

If cboTipo.Text = "Todos" Then

txtParametro.Enabled = False

Else

txtParametro.Enabled = True

End If

End Sub

Private Sub fgConsultaCom_DblClick()

If fgConsultaCom.Row = 0 Then

Exit Sub

End If

frmCadCompras.Show

frmCadCompras.Left = 3000

frmCadCompras.Top = 1500

End Sub

Private Sub fgConsultaCom_MouseMove(Button As Integer, Shift As Integer, x As

Single, y As Single)

If fgConsultaCom.Rows > 1 Then

If fgConsultaCom.Row <> fgConsultaCom.MouseRow And

fgConsultaCom.MouseRow > 0 Then

fgConsultaCom.Col = 0

fgConsultaCom.Row = fgConsultaCom.MouseRow

fgConsultaCom.ColSel = fgConsultaCom.Cols - 1

End If

End If

End Sub

Private Sub Form_Load()

Toolbar1.Left = 7245

With fgConsultaCom

Page 100: Curso Visual Basic (Págs.222)

100

.ColWidth(0) = 800

.ColWidth(1) = 1500

.ColWidth(2) = 1500

.ColWidth(3) = 1000

.ColWidth(4) = 1800

.Rows = 1

.TextArray(0) = "Código"

.TextArray(1) = "Nº da Nota Fiscal"

.TextArray(2) = "Código do Produto"

.TextArray(3) = "Quantidade"

.TextArray(4) = "Código do Fornecedor"

End With

End Sub

Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)

If Button.Key = "Sair" Then

Unload Me

ElseIf Button.Key = "Pesquisar" Then

If cboTipo.Text = "Escolha o tipo de Consulta" Then

MsgBox "Escolha o Tipo de Consulta desejada", vbOKOnly + vbInformation,

"Atenção"

cboTipo.SetFocus

Exit Sub

End If

If cboTipo.Text = "Por Código" Then

If txtParametro.Text = "" Then

MsgBox "Entre com o parametro para realizar a consulta", vbOKOnly +

vbInformation, "Atenção"

txtParametro.SetFocus

Exit Sub

End If

Page 101: Curso Visual Basic (Págs.222)

101

If Not IsNumeric(txtParametro.Text) Then

MsgBox "Entre com um número para o código!", vbOKOnly + vbInformation,

"Atenção"

txtParametro.Text = ""

txtParametro.SetFocus

Exit Sub

End If

Dim VConCodigo As Integer

VConCodigo = CInt(txtParametro.Text)

fgConsultaCom.Clear

Vfrase = "Select * from Compras Where Cod_Compra=" & VConCodigo

Set rsConCompras = mdiPrincipal.cnBiblioteca.Execute(Vfrase)

EncheGrid

If rsConCompras.BOF = True And rsConCompras.EOF = True Then

'cliente não cadastrado

MsgBox "Compra Não Cadastrada!", vbInformation, "Atenção"

txtParametro.Text = ""

'fecha a conexão

rsConCompras.Close

End If

ElseIf cboTipo.Text = "Por Nº da Nota Fiscal" Then

Dim VConNota As Integer

If txtParametro.Text = "" Then

MsgBox "Entre com o parametro para realizar a consulta", vbOKOnly +

vbInformation, "Atenção"

txtParametro.SetFocus

Exit Sub

End If

VConNota = CInt(txtParametro.Text)

Page 102: Curso Visual Basic (Págs.222)

102

fgConsultaCom.Clear

Vfrase = "Select * from Compras Where Nf_Compra=" & VConNota

Set rsConCompras = mdiPrincipal.cnBiblioteca.Execute(Vfrase)

EncheGrid

If rsConCompras.BOF = True And rsConCompras.EOF = True Then

'cliente não cadastrado

MsgBox "Compra Não Cadastrada!", vbInformation, "Atenção"

txtParametro.Text = ""

'fecha a conexão

rsConCompras.Close

End If

ElseIf cboTipo.Text = "Por Código do Fornecedor" Then

Dim VConForn As Integer

If txtParametro.Text = "" Then

MsgBox "Entre com o parametro para realizar a consulta", vbOKOnly +

vbInformation, "Atenção"

txtParametro.SetFocus

Exit Sub

End If

VConForn = CInt(txtParametro.Text)

fgConsultaCom.Clear

Vfrase = "Select * from Compras Where CodFor_Compra=" & VConForn

Set rsConCompras = mdiPrincipal.cnBiblioteca.Execute(Vfrase)

EncheGrid

If rsConCompras.BOF = True And rsConCompras.EOF = True Then

'cliente não cadastrado

MsgBox "Compra Não Cadastrada!", vbInformation, "Atenção"

txtParametro.Text = ""

'fecha a conexão

Page 103: Curso Visual Basic (Págs.222)

103

rsConCompras.Close

End If

ElseIf cboTipo.Text = "Todos" Then

Vfrase = "Select * from Compras order by Cod_Compra"

Set rsConCompras = mdiPrincipal.cnBiblioteca.Execute(Vfrase)

' chama a funcao que preenche o grid

EncheGrid

If rsConCompras.BOF = True And rsConCompras.EOF = True Then

'cliente não cadastrado

MsgBox "Não há Compra Cadastrada!", vbInformation, "Atenção"

txtParametro.Text = ""

'fecha a conexão

rsConCompras.Close

End If

End If

ElseIf Button.Key = "Nova" Then

fgConsultaCom.Clear

cboTipo.Text = "Escolha o tipo de Consulta"

txtParametro.Text = ""

With fgConsultaCom

.ColWidth(0) = 800

.ColWidth(1) = 1500

.ColWidth(2) = 1500

.ColWidth(3) = 1000

.ColWidth(4) = 1800

.Rows = 1

.TextArray(0) = "Código"

.TextArray(1) = "Nº da Nota Fiscal"

.TextArray(2) = "Código do Produto"

.TextArray(3) = "Quantidade"

.TextArray(4) = "Código do Fornecedor"

Page 104: Curso Visual Basic (Págs.222)

104

End With

cboTipo.SetFocus

End If

End Sub

Private Sub EncheGrid()

' forma o cabeçalho do fexgrid

With fgConsultaCom

.ColWidth(0) = 800

.ColWidth(1) = 1500

.ColWidth(2) = 1500

.ColWidth(3) = 1000

.ColWidth(4) = 1800

.Rows = 1

.TextArray(0) = "Código"

.TextArray(1) = "Nº da Nota Fiscal"

.TextArray(2) = "Código do Produto"

.TextArray(3) = "Quantidade"

.TextArray(4) = "Código do Fornecedor"

End With

Do While Not rsConCompras.EOF

fgConsultaCom.AddItem rsConCompras("Cod_Compra") & Chr(9) &

rsConCompras("Nf_Compra") & Chr(9) & rsConCompras("CodPro_Compra") & Chr(9)

& rsConCompras("Qtd_Compra") & Chr(9) & rsConCompras("CodFor_Compra")

rsConCompras.MoveNext

Loop

End Sub

Private Sub txtParametro_KeyPress(KeyAscii As Integer)

If (KeyAscii < Asc("0") Or KeyAscii > Asc("9") And KeyAscii <> 8) Then

KeyAscii = 0

End If

End Sub

Page 105: Curso Visual Basic (Págs.222)

105

Private Vfrase As String

Private rsConFornecedores As New ADODB.Recordset

Private Sub cboTipo_Click()

txtParametro.Text = ""

fgConsultaFor.Clear

With fgConsultaFor

.ColWidth(0) = 800

.ColWidth(1) = 3500

.ColWidth(2) = 3500

.ColWidth(3) = 3000

.ColWidth(4) = 2000

.ColWidth(5) = 800

.Rows = 1

.TextArray(0) = "Código"

.TextArray(1) = "Razão Social"

.TextArray(2) = "Nome Fantasia"

.TextArray(3) = "Endereço"

Page 106: Curso Visual Basic (Págs.222)

106

.TextArray(4) = "Cidade"

.TextArray(5) = "Estado"

End With

If cboTipo.Text = "Todos" Then

txtParametro.Enabled = False

Else

txtParametro.Enabled = True

End If

End Sub

Private Sub fgConsultaFor_DblClick()

If fgConsultaFor.Row = 0 Then

Exit Sub

End If

frmCadFornecedores.Show

frmCadFornecedores.Left = 2500

frmCadFornecedores.Top = 50

End Sub

Private Sub fgConsultaFor_MouseMove(Button As Integer, Shift As Integer, x As

Single, y As Single)

If fgConsultaFor.Rows > 1 Then

If fgConsultaFor.Row <> fgConsultaFor.MouseRow And

fgConsultaFor.MouseRow > 0 Then

fgConsultaFor.Col = 0

fgConsultaFor.Row = fgConsultaFor.MouseRow

fgConsultaFor.ColSel = fgConsultaFor.Cols - 1

End If

End If

End Sub

Private Sub Form_Load()

Page 107: Curso Visual Basic (Págs.222)

107

Toolbar1.Left = 12960

With fgConsultaFor

.ColWidth(0) = 800

.ColWidth(1) = 3500

.ColWidth(2) = 3500

.ColWidth(3) = 3000

.ColWidth(4) = 2000

.ColWidth(5) = 800

.Rows = 1

.TextArray(0) = "Código"

.TextArray(1) = "Razão Social"

.TextArray(2) = "Nome Fantasia"

.TextArray(3) = "Endereço"

.TextArray(4) = "Cidade"

.TextArray(5) = "Estado"

End With

End Sub

Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)

If Button.Key = "Sair" Then

Unload Me

ElseIf Button.Key = "Pesquisar" Then

If cboTipo.Text = "Escolha o tipo de Consulta" Then

MsgBox "Escolha o Tipo de Consulta desejada", vbOKOnly + vbInformation,

"Atenção"

cboTipo.SetFocus

Exit Sub

End If

If cboTipo.Text = "Por Código" Then

If txtParametro.Text = "" Then

MsgBox "Entre com o parametro para realizar a consulta", vbOKOnly +

vbInformation, "Atenção"

Page 108: Curso Visual Basic (Págs.222)

108

txtParametro.SetFocus

Exit Sub

End If

If Not IsNumeric(txtParametro.Text) Then

MsgBox "Entre com um número para o código!", vbOKOnly + vbInformation,

"Atenção"

txtParametro.Text = ""

txtParametro.SetFocus

Exit Sub

End If

Dim VConCodigo As Integer

VConCodigo = CInt(txtParametro.Text)

fgConsultaFor.Clear

Vfrase = "Select * from Fornecedores Where Cod_For=" & VConCodigo

Set rsConFornecedores = mdiPrincipal.cnBiblioteca.Execute(Vfrase)

EncheGrid

If rsConFornecedores.BOF = True And rsConFornecedores.EOF = True Then

'cliente não cadastrado

MsgBox "Fornecedor Não Cadastrada!", vbInformation, "Atenção"

txtParametro.Text = ""

'fecha a conexão

rsConFornecedores.Close

End If

ElseIf cboTipo.Text = "Por Nome Fantasia" Then

Dim VConNome As String

If txtParametro.Text = "" Then

MsgBox "Entre com o parametro para realizar a consulta", vbOKOnly +

vbInformation, "Atenção"

txtParametro.SetFocus

Page 109: Curso Visual Basic (Págs.222)

109

Exit Sub

End If

VConNome = Chr(39) & CStr(txtParametro.Text) & Chr(39)

fgConsultaFor.Clear

Vfrase = "Select * from Fornecedores Where NomeFantasia_For Like" &

VConNome

Set rsConFornecedores = mdiPrincipal.cnBiblioteca.Execute(Vfrase)

EncheGrid

If rsConFornecedores.BOF = True And rsConFornecedores.EOF = True Then

'cliente não cadastrado

MsgBox "Fornecedor Não Cadastrado!", vbInformation, "Atenção"

txtParametro.Text = ""

'fecha a conexão

rsConFornecedores.Close

End If

ElseIf cboTipo.Text = "Todos" Then

Vfrase = "Select * from Fornecedores order by Cod_For"

Set rsConFornecedores = mdiPrincipal.cnBiblioteca.Execute(Vfrase)

' chama a funcao que preenche o grid

EncheGrid

If rsConFornecedores.BOF = True And rsConFornecedores.EOF = True Then

'cliente não cadastrado

MsgBox "Não há Fornecedor Cadastrado!", vbInformation, "Atenção"

txtParametro.Text = ""

'fecha a conexão

rsConFornecedores.Close

End If

End If

ElseIf Button.Key = "Nova" Then

Page 110: Curso Visual Basic (Págs.222)

110

fgConsultaFor.Clear

cboTipo.Text = "Escolha o tipo de Consulta"

txtParametro.Text = ""

With fgConsultaFor

.ColWidth(0) = 800

.ColWidth(1) = 3500

.ColWidth(2) = 3500

.ColWidth(3) = 3000

.ColWidth(4) = 2000

.ColWidth(5) = 800

.Rows = 1

.TextArray(0) = "Código"

.TextArray(1) = "Razão Social"

.TextArray(2) = "Nome Fantasia"

.TextArray(3) = "Endereço"

.TextArray(4) = "Cidade"

.TextArray(5) = "Estado"

End With

cboTipo.SetFocus

End If

End Sub

Private Sub EncheGrid()

' forma o cabeçalho do fexgrid

With fgConsultaFor

.ColWidth(0) = 800

.ColWidth(1) = 3500

.ColWidth(2) = 3500

.ColWidth(3) = 3000

.ColWidth(4) = 2000

.ColWidth(5) = 800

.Rows = 1

.TextArray(0) = "Código"

.TextArray(1) = "Razão Social"

Page 111: Curso Visual Basic (Págs.222)

111

.TextArray(2) = "Nome Fantasia"

.TextArray(3) = "Endereço"

.TextArray(4) = "Cidade"

.TextArray(5) = "Estado"

End With

Do While Not rsConFornecedores.EOF

fgConsultaFor.AddItem rsConFornecedores("Cod_For") & Chr(9) &

rsConFornecedores("Razao_For") & Chr(9) &

rsConFornecedores("NomeFantasia_For") & Chr(9) &

rsConFornecedores("Endereco_For") & Chr(9) & rsConFornecedores("Cidade_For") &

Chr(9) & rsConFornecedores("Estado_For")

rsConFornecedores.MoveNext

Loop

End Sub

Private Sub txtParametro_KeyPress(KeyAscii As Integer)

If cboTipo.Text = "Por Código" Then

If (KeyAscii < Asc("0") Or KeyAscii > Asc("9") And KeyAscii <> 8) Then

KeyAscii = 0

End If

End If

If cboTipo.Text = "Por Nome Fantasia" Then

If InStr("0123456789<>|\;,.?/[{}]+=§-_)(*&%$#@!*", Chr(KeyAscii)) <> 0 Then

KeyAscii = 0

End If

End If

End Sub

Page 112: Curso Visual Basic (Págs.222)

112

Private Vfrase As String

Private rsConFuncionarios As New ADODB.Recordset

Private Sub cboTipo_Click()

txtParametro.Text = ""

fgConsultaFun.Clear

With fgConsultaFun

.ColWidth(0) = 800

.ColWidth(1) = 3500

.ColWidth(2) = 3500

.ColWidth(3) = 2000

.ColWidth(4) = 800

.Rows = 1

.TextArray(0) = "Código"

.TextArray(1) = "Nome"

.TextArray(2) = "Endereço"

.TextArray(3) = "Cidade"

.TextArray(4) = "Estado"

End With

Page 113: Curso Visual Basic (Págs.222)

113

If cboTipo.Text = "Todos" Then

txtParametro.Enabled = False

Else

txtParametro.Enabled = True

End If

End Sub

Private Sub fgConsultaFun_DblClick()

If fgConsultaFun.Row = 0 Then

Exit Sub

End If

frmCadFuncionarios.Show

frmCadFuncionarios.Left = 2000

frmCadFuncionarios.Top = 200

End Sub

Private Sub fgConsultaFun_MouseMove(Button As Integer, Shift As Integer, x As

Single, y As Single)

If fgConsultaFun.Rows > 1 Then

If fgConsultaFun.Row <> fgConsultaFun.MouseRow And

fgConsultaFun.MouseRow > 0 Then

fgConsultaFun.Col = 0

fgConsultaFun.Row = fgConsultaFun.MouseRow

fgConsultaFun.ColSel = fgConsultaFun.Cols - 1

End If

End If

End Sub

Private Sub Form_Load()

Toolbar1.Left = 11190

With fgConsultaFun

.ColWidth(0) = 800

Page 114: Curso Visual Basic (Págs.222)

114

.ColWidth(1) = 3500

.ColWidth(2) = 3500

.ColWidth(3) = 2000

.ColWidth(4) = 800

.Rows = 1

.TextArray(0) = "Código"

.TextArray(1) = "Nome"

.TextArray(2) = "Endereço"

.TextArray(3) = "Cidade"

.TextArray(4) = "Estado"

End With

End Sub

Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)

If Button.Key = "Sair" Then

Unload Me

ElseIf Button.Key = "Pesquisar" Then

If cboTipo.Text = "Escolha o tipo de Consulta" Then

MsgBox "Escolha o Tipo de Consulta desejada", vbOKOnly + vbInformation,

"Atenção"

cboTipo.SetFocus

Exit Sub

End If

If cboTipo.Text = "Por Código" Then

If txtParametro.Text = "" Then

MsgBox "Entre com o parametro para realizar a consulta", vbOKOnly +

vbInformation, "Atenção"

txtParametro.SetFocus

Exit Sub

End If

If Not IsNumeric(txtParametro.Text) Then

Page 115: Curso Visual Basic (Págs.222)

115

MsgBox "Entre com um número para o código!", vbOKOnly + vbInformation,

"Atenção"

txtParametro.Text = ""

txtParametro.SetFocus

Exit Sub

End If

Dim VConCodigo As Integer

VConCodigo = CInt(txtParametro.Text)

fgConsultaFun.Clear

Vfrase = "Select * from Funcionarios Where Cod_Fun=" & VConCodigo

Set rsConFuncionarios = mdiPrincipal.cnBiblioteca.Execute(Vfrase)

EncheGrid

If rsConFuncionarios.BOF = True And rsConFuncionarios.EOF = True Then

'cliente não cadastrado

MsgBox "Funcionário Não Encontrado!", vbInformation, "Atenção"

txtParametro.Text = ""

'fecha a conexão

rsConFuncionarios.Close

End If

ElseIf cboTipo.Text = "Por Nome" Then

Dim VConNome As String

If txtParametro.Text = "" Then

MsgBox "Entre com o parametro para realizar a consulta", vbOKOnly +

vbInformation, "Atenção"

txtParametro.SetFocus

Exit Sub

End If

VConNome = Chr(39) & CStr(txtParametro.Text) & Chr(39)

fgConsultaFun.Clear

Page 116: Curso Visual Basic (Págs.222)

116

Vfrase = "Select * from Funcionarios Where Nome_Fun Like" & VConNome

Set rsConFuncionarios = mdiPrincipal.cnBiblioteca.Execute(Vfrase)

EncheGrid

If rsConFuncionarios.BOF = True And rsConFuncionarios.EOF = True Then

'cliente não cadastrado

MsgBox "Funcionário Não Encontrado!", vbInformation, "Atenção"

txtParametro.Text = ""

'fecha a conexão

rsConFuncionarios.Close

End If

ElseIf cboTipo.Text = "Todos" Then

Vfrase = "Select * from Funcionarios order by Cod_Fun"

Set rsConFuncionarios = mdiPrincipal.cnBiblioteca.Execute(Vfrase)

' chama a funcao que preenche o grid

EncheGrid

If rsConFuncionarios.BOF = True And rsConFuncionarios.EOF = True Then

'cliente não cadastrado

MsgBox "Não há Funcionário Cadastrado!", vbInformation, "Atenção"

txtParametro.Text = ""

'fecha a conexão

rsConFuncionarios.Close

End If

End If

ElseIf Button.Key = "Nova" Then

fgConsultaFun.Clear

cboTipo.Text = "Escolha o tipo de Consulta"

txtParametro.Text = ""

With fgConsultaFun

.ColWidth(0) = 800

.ColWidth(1) = 3500

Page 117: Curso Visual Basic (Págs.222)

117

.ColWidth(2) = 3500

.ColWidth(3) = 2000

.ColWidth(4) = 800

.Rows = 1

.TextArray(0) = "Código"

.TextArray(1) = "Nome"

.TextArray(2) = "Endereço"

.TextArray(3) = "Cidade"

.TextArray(4) = "Estado"

End With

cboTipo.SetFocus

End If

End Sub

Private Sub EncheGrid()

' forma o cabeçalho do fexgrid

With fgConsultaFun

.ColWidth(0) = 800

.ColWidth(1) = 3500

.ColWidth(2) = 3500

.ColWidth(3) = 2000

.ColWidth(4) = 800

.Rows = 1

.TextArray(0) = "Código"

.TextArray(1) = "Nome"

.TextArray(2) = "Endereço"

.TextArray(3) = "Cidade"

.TextArray(4) = "Estado"

End With

Do While Not rsConFuncionarios.EOF

fgConsultaFun.AddItem rsConFuncionarios("Cod_Fun") & Chr(9) &

rsConFuncionarios("Nome_Fun") & Chr(9) & rsConFuncionarios("Endereco_Fun") &

Chr(9) & rsConFuncionarios("Cidade_Fun") & Chr(9) &

rsConFuncionarios("Estado_Fun")

Page 118: Curso Visual Basic (Págs.222)

118

rsConFuncionarios.MoveNext

Loop

End Sub

Private Sub txtParametro_KeyPress(KeyAscii As Integer)

If cboTipo.Text = "Por Código" Then

If (KeyAscii < Asc("0") Or KeyAscii > Asc("9") And KeyAscii <> 8) Then

KeyAscii = 0

End If

End If

If cboTipo.Text = "Por Nome" Then

If InStr("0123456789<>|\;,.?/[{}]+=§-_)(*&%$#@!*", Chr(KeyAscii)) <> 0 Then

KeyAscii = 0

End If

End If

End Sub

Page 119: Curso Visual Basic (Págs.222)

119

Private Vfrase As String

Private rsConProdutos As New ADODB.Recordset

Private Sub cboTipo_Click()

txtParametro.Text = ""

fgConsultaPro.Clear

With fgConsultaPro

.ColWidth(0) = 800

.ColWidth(1) = 3500

.ColWidth(2) = 3500

.ColWidth(3) = 1500

.Rows = 1

.TextArray(0) = "Código"

.TextArray(1) = "Nome"

.TextArray(2) = "Descricão"

.TextArray(3) = "Cod Fornecedor"

End With

If cboTipo.Text = "Todos" Then

Page 120: Curso Visual Basic (Págs.222)

120

txtParametro.Enabled = False

Else

txtParametro.Enabled = True

End If

End Sub

Private Sub fgConsultaPro_DblClick()

If fgConsultaPro.Row = 0 Then

Exit Sub

End If

frmCadProdutos.Show

frmCadProdutos.Left = 2500

frmCadProdutos.Top = 1500

End Sub

Private Sub fgConsultaPro_MouseMove(Button As Integer, Shift As Integer, x As

Single, y As Single)

If fgConsultaPro.Rows > 1 Then

If fgConsultaPro.Row <> fgConsultaPro.MouseRow And

fgConsultaPro.MouseRow > 0 Then

fgConsultaPro.Col = 0

fgConsultaPro.Row = fgConsultaPro.MouseRow

fgConsultaPro.ColSel = fgConsultaPro.Cols - 1

End If

End If

End Sub

Private Sub Form_Load()

With fgConsultaPro

.ColWidth(0) = 800

.ColWidth(1) = 3500

Page 121: Curso Visual Basic (Págs.222)

121

.ColWidth(2) = 3500

.ColWidth(3) = 1500

.Rows = 1

.TextArray(0) = "Código"

.TextArray(1) = "Nome"

.TextArray(2) = "Descricão"

.TextArray(3) = "Cod Fornecedor"

End With

End Sub

Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)

If Button.Key = "Sair" Then

Unload Me

ElseIf Button.Key = "Pesquisar" Then

If cboTipo.Text = "Escolha o tipo de Consulta" Then

MsgBox "Escolha o Tipo de Consulta desejada", vbOKOnly + vbInformation,

"Atenção"

cboTipo.SetFocus

Exit Sub

End If

If cboTipo.Text = "Por Código" Then

If txtParametro.Text = "" Then

MsgBox "Entre com o parametro para realizar a consulta", vbOKOnly +

vbInformation, "Atenção"

txtParametro.SetFocus

Exit Sub

End If

If Not IsNumeric(txtParametro.Text) Then

MsgBox "Entre com um número para o código!", vbOKOnly + vbInformation,

"Atenção"

txtParametro.Text = ""

Page 122: Curso Visual Basic (Págs.222)

122

txtParametro.SetFocus

Exit Sub

End If

Dim VConCodigo As Integer

VConCodigo = CInt(txtParametro.Text)

fgConsultaPro.Clear

Vfrase = "Select * from Produtos Where Cod_Pro=" & VConCodigo

Set rsConProdutos = mdiPrincipal.cnBiblioteca.Execute(Vfrase)

EncheGrid

If rsConProdutos.BOF = True And rsConProdutos.EOF = True Then

'cliente não cadastrado

MsgBox "Produto Não Encontrado!", vbInformation, "Atenção"

txtParametro.Text = ""

'fecha a conexão

rsConProdutos.Close

End If

ElseIf cboTipo.Text = "Por Código do Fornecedor" Then

If txtParametro.Text = "" Then

MsgBox "Entre com o parametro para realizar a consulta", vbOKOnly +

vbInformation, "Atenção"

txtParametro.SetFocus

Exit Sub

End If

If Not IsNumeric(txtParametro.Text) Then

MsgBox "Entre com um número para o código!", vbOKOnly + vbInformation,

"Atenção"

txtParametro.Text = ""

txtParametro.SetFocus

Exit Sub

End If

Page 123: Curso Visual Basic (Págs.222)

123

Dim VConCodFor As Integer

VConCodFor = CInt(txtParametro.Text)

fgConsultaPro.Clear

Vfrase = "Select * from Produtos Where CodFor_Pro=" & VConCodFor

Set rsConProdutos = mdiPrincipal.cnBiblioteca.Execute(Vfrase)

EncheGrid

If rsConProdutos.BOF = True And rsConProdutos.EOF = True Then

'cliente não cadastrado

MsgBox "Produto Não Encontrado!", vbInformation, "Atenção"

txtParametro.Text = ""

'fecha a conexão

rsConProdutos.Close

End If

ElseIf cboTipo.Text = "Por Nome" Then

Dim VConNome As String

If txtParametro.Text = "" Then

MsgBox "Entre com o parametro para realizar a consulta", vbOKOnly +

vbInformation, "Atenção"

txtParametro.SetFocus

Exit Sub

End If

VConNome = Chr(39) & CStr(txtParametro.Text) & Chr(39)

fgConsultaPro.Clear

Vfrase = "Select * from Produtos Where Nome_Pro Like" & VConNome

Set rsConProdutos = mdiPrincipal.cnBiblioteca.Execute(Vfrase)

EncheGrid

If rsConProdutos.BOF = True And rsConProdutos.EOF = True Then

'cliente não cadastrado

Page 124: Curso Visual Basic (Págs.222)

124

MsgBox "Produto Não Encontrado!", vbInformation, "Atenção"

txtParametro.Text = ""

'fecha a conexão

rsConProdutos.Close

End If

ElseIf cboTipo.Text = "Todos" Then

Vfrase = "Select * from Produtos order by Cod_Pro"

Set rsConProdutos = mdiPrincipal.cnBiblioteca.Execute(Vfrase)

' chama a funcao que preenche o grid

EncheGrid

If rsConProdutos.BOF = True And rsConProdutos.EOF = True Then

'cliente não cadastrado

MsgBox "Não há Produto Cadastrado!", vbInformation, "Atenção"

txtParametro.Text = ""

'fecha a conexão

rsConProdutos.Close

End If

End If

ElseIf Button.Key = "Nova" Then

fgConsultaPro.Clear

cboTipo.Text = "Escolha o tipo de Consulta"

txtParametro.Text = ""

With fgConsultaPro

.ColWidth(0) = 800

.ColWidth(1) = 3500

.ColWidth(2) = 3500

.ColWidth(3) = 1500

.Rows = 1

.TextArray(0) = "Código"

.TextArray(1) = "Nome"

.TextArray(2) = "Descricão"

.TextArray(3) = "Cod Fornecedor"

Page 125: Curso Visual Basic (Págs.222)

125

End With

cboTipo.SetFocus

End If

End Sub

Private Sub EncheGrid()

' forma o cabeçalho do fexgrid

With fgConsultaPro

.ColWidth(0) = 800

.ColWidth(1) = 3500

.ColWidth(2) = 3500

.ColWidth(3) = 1500

.Rows = 1

.TextArray(0) = "Código"

.TextArray(1) = "Nome"

.TextArray(2) = "Descricão"

.TextArray(3) = "Cod Fornecedor"

End With

Do While Not rsConProdutos.EOF

fgConsultaPro.AddItem rsConProdutos("Cod_Pro") & Chr(9) &

rsConProdutos("Nome_Pro") & Chr(9) & rsConProdutos("Desc_Pro") & Chr(9) &

rsConProdutos("CodFor_Pro")

rsConProdutos.MoveNext

Loop

End Sub

Private Sub txtParametro_KeyPress(KeyAscii As Integer)

If cboTipo.Text = "Por Código" Then

If (KeyAscii < Asc("0") Or KeyAscii > Asc("9") And KeyAscii <> 8) Then

KeyAscii = 0

End If

End If

Page 126: Curso Visual Basic (Págs.222)

126

If cboTipo.Text = "Por Código do Fornecedor" Then

If (KeyAscii < Asc("0") Or KeyAscii > Asc("9") And KeyAscii <> 8) Then

KeyAscii = 0

End If

End If

If cboTipo.Text = "Por Nome" Then

If InStr("0123456789<>|\;,.?/[{}]+=§-_)(*&%$#@!*", Chr(KeyAscii)) <> 0 Then

KeyAscii = 0

End If

End If

End Sub

Private Sub cmdOK_Click()

Unload Me

End Sub

Page 127: Curso Visual Basic (Págs.222)

127

Dim Op1 As Double ' Primeiro operando.

Dim Op2 As Double ' Segundo operando.

Dim FlagDecimal As Integer ' Flag do Ponto Decimal.

Dim NumOps As Integer ' Numero de Operandos.

Dim UltimaEntrada As String ' Indica a ultima tecla pressionada.

Dim FlagOperacao As String ' Indica a operacao pendente

Const VERDADEIRO = -1

Const FALSO = 0

' Procedure para a tecla C (Cancela).

' Reseta o display e inicializa variaveis.

Private Sub Cancel_Click()

Number(0).SetFocus 'Volta o Controle para matriz de Numeros

Visor.Caption = "0."

Form_Load

End Sub

' Procedure para a tecla CE (Cancela Entrada).

Private Sub CancelEntry_Click()

Number(0).SetFocus 'Volta o Controle para matriz de Numeros

Visor.Caption = "0."

FlagDecimal = FALSO

Page 128: Curso Visual Basic (Págs.222)

128

UltimaEntrada = "CE"

End Sub

' Procedure para a tecla de ponto decimal (.) .

' Se a ultima tecla pressiona fou operador, initializa

' Visor com "0." Senao, adiciona um ponto decimal no display.

Private Sub Decimal_Click()

If UltimaEntrada <> "NUMS" Then

Visor.Caption = "0."

ElseIf FlagDecimal = FALSO Then

Visor.Caption = Visor.Caption + "."

End If

FlagDecimal = VERDADEIRO

UltimaEntrada = "NUMS"

End Sub

' Rotina de Inicializacao para o formulario

' Inicia todas as variaveis

Private Sub Form_Load()

CENTRALIZA_FORM Me

FlagDecimal = FALSO

NumOps = 0

UltimaEntrada = "NONE"

FlagOperacao = " "

' me.left = 3720

' me.top= 975

End Sub

Private Sub mnuSair_Click()

End

End Sub

Page 129: Curso Visual Basic (Págs.222)

129

' Procedure para as teclas de numeros (0-9).

' Adiciona o novo numero ao numero do display.

Private Sub Number_Click(Index As Integer)

If UltimaEntrada <> "NUMS" Then

Visor.Caption = ""

FlagDecimal = FALSO

End If

If Len(Visor.Caption) <= 15 Then 'Limita entrada de valores a 15 digitos(inclusive

ponto decimal)

Visor.Caption = Visor.Caption + Number(Index).Caption

End If

UltimaEntrada = "NUMS"

Operator(4).SetFocus 'Posiciona o Foco na operação de igual

End Sub

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

'*** FAZ LEITURA DE TECLAS PRESSIONADAS ***

If KeyAscii = 61 Then

Operator_Click (4) 'Sinal de Igual

ElseIf KeyAscii = 67 Or KeyAscii = 99 Then

Cancel_Click 'Botao de Limpar

ElseIf KeyAscii = 37 Then

Percent_Click 'Sinal de Porcentagem

ElseIf KeyAscii = 42 Or KeyAscii = 120 Or KeyAscii = 88 Then

Operator_Click (2) 'Sinal de Multiplicação

ElseIf KeyAscii = 43 Then

Operator_Click (1) 'Sinal de Mais

ElseIf KeyAscii = 45 Then

Operator_Click (3) 'Sinal de Igual

ElseIf KeyAscii = 46 Then

Decimal_Click 'Ponto decimal

ElseIf KeyAscii = 47 Then

Page 130: Curso Visual Basic (Págs.222)

130

Operator_Click (0) 'Sinal de Divisao

ElseIf KeyAscii = 48 Then

Number_Click (0)

ElseIf KeyAscii = 49 Then

Number_Click (1)

ElseIf KeyAscii = 50 Then

Number_Click (2)

ElseIf KeyAscii = 51 Then

Number_Click (3)

ElseIf KeyAscii = 52 Then

Number_Click (4)

ElseIf KeyAscii = 53 Then

Number_Click (5)

ElseIf KeyAscii = 54 Then

Number_Click (6)

ElseIf KeyAscii = 55 Then

Number_Click (7)

ElseIf KeyAscii = 56 Then

Number_Click (8)

ElseIf KeyAscii = 57 Then

Number_Click (9)

End If

End Sub

' Procedure para os teclas de operadores (+, -, x, /, =).

' Se a tecla pressiona imediatamente foi parte de um

' numero, incrementa a variavel NumOps. Se um operando esta presente,

' "seta" Op1. Se dois operandos estao presentes, "seta" Op1 igual ao

' resultado da operacao em Op1 com a string entrada por ultimo e mostra

' o resultado.

Private Sub Operator_Click(Index As Integer)

Operator(4).SetFocus 'Volta o Controle para matriz de Numeros

If UltimaEntrada = "NUMS" Then

Page 131: Curso Visual Basic (Págs.222)

131

NumOps = NumOps + 1

End If

If NumOps = 1 Then

Op1 = Val(Visor.Caption)

ElseIf NumOps = 2 Then

Op2 = Val(Visor.Caption)

Select Case FlagOperacao

Case "+"

Op1 = Op1 + Op2

Case "-"

Op1 = Op1 - Op2

Case "X"

Op1 = Op1 * Op2

Case "/"

If Op2 = 0 Then

MsgBox "Erro, Divisão por zero impossível", 48, "Spasso Calc"

Else

Op1 = Op1 / Op2

End If

Case "="

Op1 = Op2

End Select

Visor.Caption = Format$(Op1)

NumOps = 1

End If

UltimaEntrada = "OPS"

FlagOperacao = Operator(Index).Caption

End Sub

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

'*** FAZ LEITURA DE TECLAS PRESSIONADAS ***

If KeyAscii = 61 Then

Operator_Click (4) 'Sinal de Igual

Page 132: Curso Visual Basic (Págs.222)

132

ElseIf KeyAscii = 67 Or KeyAscii = 99 Then

Cancel_Click 'Botao de Limpar

ElseIf KeyAscii = 37 Then

Percent_Click 'Sinal de Porcentagem

ElseIf KeyAscii = 42 Or KeyAscii = 120 Or KeyAscii = 88 Then

Operator_Click (2) 'Sinal de Multiplicação

ElseIf KeyAscii = 43 Then

Operator_Click (1) 'Sinal de Mais

ElseIf KeyAscii = 45 Then

Operator_Click (3) 'Sinal de Igual

ElseIf KeyAscii = 46 Then

Decimal_Click 'Ponto decimal

ElseIf KeyAscii = 47 Then

Operator_Click (0) 'Sinal de Divisao

ElseIf KeyAscii = 48 Then

Number_Click (0)

ElseIf KeyAscii = 49 Then

Number_Click (1)

ElseIf KeyAscii = 50 Then

Number_Click (2)

ElseIf KeyAscii = 51 Then

Number_Click (3)

ElseIf KeyAscii = 52 Then

Number_Click (4)

ElseIf KeyAscii = 53 Then

Number_Click (5)

ElseIf KeyAscii = 54 Then

Number_Click (6)

ElseIf KeyAscii = 55 Then

Number_Click (7)

ElseIf KeyAscii = 56 Then

Number_Click (8)

ElseIf KeyAscii = 57 Then

Number_Click (9)

Page 133: Curso Visual Basic (Págs.222)

133

End If

End Sub

' Procedure para a tecla de percentagem (%).

' Computa and mostra a percentagem do primeiro operando.

Private Sub Percent_Click()

Visor.Caption = Format$(Op1 * Val(Visor.Caption) / 100)

End Sub

Private Sub SobreSpCalc_Click()

frmCopyright.Show 1

End Sub

Public Sub CENTRALIZA_FORM(Formulario As Form)

On Error Resume Next 'Evita erro caso o usuário minimize o Form

With Formulario

.Left = (Screen.Width - .Width) / 2 'Alinha o form no horizontalmente no centro

.Top = (Screen.Height - .Height) / 2 'Alinha o form no verticalmente no centro

End With

'With Formulario

' .Left = ((mdiGerest.Width - .Width) / 2) 'Alinha o form no horizontalmente no centro

' .Top = ((mdiGerest.Height - .Height) / 2) - 1000 'Alinha o form no verticalmente no

centro

'End With

End Sub

Page 134: Curso Visual Basic (Págs.222)

134

Private Const AnInch As Long = 1440 '1440 twips per inch

Private Const QuarterInch As Long = 360

Private Sub Combo1_Click()

RTF.SelFontSize = Combo1.Text

End Sub

Private Sub Combo3_Click()

RTF.SelFontName = Combo3.Text

End Sub

Private Sub Form_Load()

For i = 1 To Screen.FontCount - 1

Page 135: Curso Visual Basic (Págs.222)

135

Combo3.AddItem Screen.Fonts(i)

Next i

End Sub

Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)

If Button.Key = "Novo" Then

If RTF.Text = "" Then

RTF.Text = ""

Exit Sub

End If

'Pergunta se deseja salvar !!

If MsgBox("Deseja salvar o texto atual ?", vbQuestion + vbYesNo, "Salvar ?") =

vbYes Then

DIALOGO.ShowSave

RTF.SaveFile (DIALOGO.FileName), 0

RTF.Text = ""

Exit Sub

End If

RTF.Text = ""

ElseIf Button.Key = "Abrir" Then

DIALOGO.ShowOpen

RTF.LoadFile (DIALOGO.FileName), 0

Exit Sub

ElseIf Button.Key = "Salvar" Then

DIALOGO.ShowSave

RTF.SaveFile (DIALOGO.FileName), 0

RTF.Text = ""

Exit Sub

ElseIf Button.Key = "Imprimir" Then

Page 136: Curso Visual Basic (Págs.222)

136

If MsgBox("Gostaria de imprimir o documento na impressora " &

Printer.DeviceName & " ?", vbQuestion + vbYesNo, "Confirme !!") = vbYes Then

PrintRTF RTF, AnInch, AnInch, AnInch, AnInch

Exit Sub

Else

Exit Sub

End If

ElseIf Button.Key = "Recortar" Then

Clipboard.Clear

Clipboard.SetText (RTF.SelText)

RTF.SelText = ""

ElseIf Button.Key = "Copiar" Then

Clipboard.Clear

Clipboard.SetText (RTF.SelText)

ElseIf Button.Key = "Colar" Then

RTF.SelText = Clipboard.GetText

ElseIf Button.Key = "Retirar" Then

If RTF.SelIndent > 0 Then

RTF.SelIndent = RTF.SelIndent - 490

End If

ElseIf Button.Key = "Inserir" Then

'Limita a identação do texto

If CInt(RTF.SelIndent) < CInt(11160) Then

RTF.SelIndent = RTF.SelIndent + 490

End If

ElseIf Button.Key = "Cor" Then

DIALOGO.ShowColor

RTF.SelColor = DIALOGO.Color

Page 137: Curso Visual Basic (Págs.222)

137

ElseIf Button.Key = "Localizar" Then

BUSCA = InputBox("Digite o texto a ser localizado:", "Localizador")

If RTF.Find(BUSCA) = -1 Then

MsgBox ("Não encontrei nada !!"), vbCritical, "Desculpe !!"

Exit Sub

Else

Exit Sub

End If

ElseIf Button.Key = "LSubstituir" Then

BUSCA = InputBox("Digite o texto a ser localizado:", "Localiza / Substitui")

If RTF.Find(BUSCA) = -1 Then

MsgBox ("Não encontrei o texto digitado !!"), vbCritical, "Nada localizado"

End If

BUSCA2 = InputBox("Digite o texto Substituto", "Substituir")

RTF.SelText = BUSCA2

MsgBox ("Texto subtituido"), vbInformation, "Sucesso !!"

End If

End Sub

Private Sub Toolbar2_ButtonClick(ByVal Button As MSComctlLib.Button)

If Button.Key = "Negrito" Then

If RTF.SelBold = True Then

RTF.SelBold = False

Else

RTF.SelBold = True

End If

ElseIf Button.Key = "Italico" Then

If RTF.SelItalic = True Then

Page 138: Curso Visual Basic (Págs.222)

138

RTF.SelItalic = False

Else

RTF.SelItalic = True

End If

ElseIf Button.Key = "Sublinhado" Then

If RTF.SelUnderline = True Then

RTF.SelUnderline = False

Else

RTF.SelUnderline = True

End If

ElseIf Button.Key = "Marcador" Then

If RTF.SelBullet = False Then

RTF.SelBullet = True

Else

RTF.SelBullet = False

End If

ElseIf Button.Key = "Esquerda" Then

RTF.SelAlignment = rtfLeft

ElseIf Button.Key = "Centro" Then

RTF.SelAlignment = rtfCenter

ElseIf Button.Key = "Direita" Then

RTF.SelAlignment = rtfRight

ElseIf Button.Key = "Sair" Then

If RTF.Text = "" Then

Unload Me

Else

If MsgBox("Deseja salvar o texto atual?", vbQuestion + vbYesNo, "Salvar?") =

vbYes Then

Page 139: Curso Visual Basic (Págs.222)

139

DIALOGO.ShowSave

RTF.SaveFile (DIALOGO.FileName), 0

Unload Me

Exit Sub

End If

End If

Unload Me

End If

End Sub

Dim Ind As Integer, ind2 As Integer

Rem Função de pesquisa

Function Search(Name As String)

If Dir$(App.Path & Name) = "" Then

MsgBox "Arquivo não encontrado:" & vbNewLine & Name & vbNewLine & "O

aplicativo será finalizado.", vbCritical

End

End If

End Function

Rem Verifica se os arquivos existem

Private Sub Form_Load()

Page 140: Curso Visual Basic (Págs.222)

140

lblVersao.Caption = "Versão " & App.Major & "." & App.Minor & "." & App.Revision

For Ind = 1 To 10 Step 1

Search ("\Dat\A\" & Ind & ".dat")

Search ("\Dat\B\" & Ind & ".dat")

Search ("\Dat\C\" & Ind & ".dat")

Search ("\Dat\D\" & Ind & ".dat")

Search ("\Dat\E\" & Ind & ".dat")

Search ("\Dat\F\" & Ind & ".dat")

Search ("\Dat\G\" & Ind & ".dat")

Search ("\Dat\H\" & Ind & ".dat")

Search ("\Dat\I\" & Ind & ".dat")

Search ("\Dat\J\" & Ind & ".dat")

Search ("\Dat\L\" & Ind & ".dat")

Search ("\Dat\M\" & Ind & ".dat")

Search ("\Dat\N\" & Ind & ".dat")

Search ("\Dat\O\" & Ind & ".dat")

Search ("\Dat\P\" & Ind & ".dat")

Search ("\Dat\Q\" & Ind & ".dat")

Search ("\Dat\R\" & Ind & ".dat")

Search ("\Dat\S\" & Ind & ".dat")

Search ("\Dat\T\" & Ind & ".dat")

Search ("\Dat\U\" & Ind & ".dat")

Search ("\Dat\V\" & Ind & ".dat")

Search ("\Dat\X\" & Ind & ".dat")

Search ("\Dat\Z\" & Ind & ".dat")

Search ("\Dat\W\" & Ind & ".dat")

Search ("\Dat\Y\" & Ind & ".dat")

Next

Screen.MousePointer = vbHourglass

End Sub

Rem Tempo de apresentação

Page 141: Curso Visual Basic (Págs.222)

141

Private Sub tmrSplash_Timer()

Screen.MousePointer = vbDefault

Unload Me

frmAgenda.Show

frmAgenda.Top = 3000

frmAgenda.Left = 5000

End Sub

Option Explicit

Rem Função de movimentação do form sem barra de título:

Private Declare Function SendMessage Lib "USER32" Alias "SendMessageA" (ByVal

hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As

Long

Private Declare Function ReleaseCapture Lib "USER32" () As Long

Rem Declaração das variáveis do aplicativo

Dim Ind As Integer, ind2 As Integer, Pagina As Integer, Pag_Atual As Integer, SA As

Integer, I2 As Integer, Pag As Integer, iARQ As Integer, II As Integer

Page 142: Curso Visual Basic (Págs.222)

142

Dim INI_Parametre(1 To 2) As String, Nome As String, Status As String, NomeO As

String, FoneO As String, Status2 As String, Letra_Atual As String, Nome_Atual As

String, Letra_Salvar As String, Letra_Pesquisa As String

Rem Função de leitura dos arquivos .dat

Private Function Separate_Parametre(ByVal Text As String) As String

Dim I As Integer

For I = 1 To Len(Text)

If Mid$(Text, I, 1) = "=" Then

Separate_Parametre = Trim(Left$(Text, I - 1))

Exit For

End If

Next I

End Function

Rem Função de leitura dos arquivos .dat

Private Function Separate_Value(ByVal Text As String) As String

Dim I As Integer

For I = 1 To Len(Text)

If Mid$(Text, I, 1) = "=" Then

Separate_Value = Trim(Right$(Text, Len(Text) - I))

Exit For

End If

Next I

End Function

Rem Função para inibir os frames editore

Function Inibe_Frames()

fraCampos1.Visible = False

fraCampos2.Visible = False

fraCampos3.Visible = False

fraCampos4.Visible = False

fraCampos5.Visible = False

End Function

Rem Função para salvar a agenda

Page 143: Curso Visual Basic (Págs.222)

143

Function Salva(ByVal sFileINI As String)

ind2 = 0

iARQ = FreeFile

Select Case Pagina

Case 1

Open sFileINI For Output As iARQ

Print #iARQ, "{ Página 1 }"

For ind2 = 0 To 4 Step 1

Print #iARQ, "Nome" & ind2 & "=" & txtNome(ind2)

Print #iARQ, "Telefone" & ind2 & "=" & txtFone(ind2)

Next

Close iARQ

Inibe_Frames

Habilita_Tudo2

lblCopyright.Caption = ".:: Agenda Telefônica"

Pagina = Pag_Atual

Mostra_Letra (Mid(fra2.Caption, 1, 1))

Case 2

Open sFileINI For Output As iARQ

Print #iARQ, "{ Página 2 }"

For ind2 = 5 To 9 Step 1

Print #iARQ, "Nome" & ind2 & "=" & txtNome(ind2 - 5)

Print #iARQ, "Telefone" & ind2 & "=" & txtFone(ind2 - 5)

Next

Close iARQ

Inibe_Frames

Habilita_Tudo2

lblCopyright.Caption = ".:: Agenda Telefônica"

Pagina = Pag_Atual

Mostra_Letra (Mid(fra2.Caption, 1, 1))

Case 3

Open sFileINI For Output As iARQ

Page 144: Curso Visual Basic (Págs.222)

144

Print #iARQ, "{ Página 3 }"

For ind2 = 10 To 14 Step 1

Print #iARQ, "Nome" & ind2 & "=" & txtNome(ind2 - 10)

Print #iARQ, "Telefone" & ind2 & "=" & txtFone(ind2 - 10)

Next

Close iARQ

Inibe_Frames

Habilita_Tudo2

lblCopyright.Caption = ".:: Agenda Telefônica"

Pagina = Pag_Atual

Mostra_Letra (Mid(fra2.Caption, 1, 1))

Case 4

Open sFileINI For Output As iARQ

Print #iARQ, "{ Página 4 }"

For ind2 = 15 To 19 Step 1

Print #iARQ, "Nome" & ind2 & "=" & txtNome(ind2 - 15)

Print #iARQ, "Telefone" & ind2 & "=" & txtFone(ind2 - 15)

Next

Close iARQ

Inibe_Frames

Habilita_Tudo2

lblCopyright.Caption = ".:: Agenda Telefônica"

Pagina = Pag_Atual

Mostra_Letra (Mid(fra2.Caption, 1, 1))

Case 5

Open sFileINI For Output As iARQ

Print #iARQ, "{ Página 5 }"

For ind2 = 20 To 24 Step 1

Print #iARQ, "Nome" & ind2 & "=" & txtNome(ind2 - 20)

Print #iARQ, "Telefone" & ind2 & "=" & txtFone(ind2 - 20)

Next

Close iARQ

Inibe_Frames

Habilita_Tudo2

Page 145: Curso Visual Basic (Págs.222)

145

lblCopyright.Caption = ".:: Agenda Telefônica"

Pagina = Pag_Atual

Mostra_Letra (Mid(fra2.Caption, 1, 1))

Case 6

Open sFileINI For Output As iARQ

Print #iARQ, "{ Página 6 }"

For ind2 = 25 To 29 Step 1

Print #iARQ, "Nome" & ind2 & "=" & txtNome(ind2 - 25)

Print #iARQ, "Telefone" & ind2 & "=" & txtFone(ind2 - 25)

Next

Close iARQ

Inibe_Frames

Habilita_Tudo2

lblCopyright.Caption = ".:: Agenda Telefônica"

Pagina = Pag_Atual

Mostra_Letra (Mid(fra2.Caption, 1, 1))

Case 7

Open sFileINI For Output As iARQ

Print #iARQ, "{ Página 7 }"

For ind2 = 30 To 34 Step 1

Print #iARQ, "Nome" & ind2 & "=" & txtNome(ind2 - 30)

Print #iARQ, "Telefone" & ind2 & "=" & txtFone(ind2 - 30)

Next

Close iARQ

Inibe_Frames

Habilita_Tudo2

lblCopyright.Caption = ".:: Agenda Telefônica"

Pagina = Pag_Atual

Mostra_Letra (Mid(fra2.Caption, 1, 1))

Case 8

Open sFileINI For Output As iARQ

Print #iARQ, "{ Página 8 }"

For ind2 = 35 To 39 Step 1

Print #iARQ, "Nome" & ind2 & "=" & txtNome(ind2 - 35)

Page 146: Curso Visual Basic (Págs.222)

146

Print #iARQ, "Telefone" & ind2 & "=" & txtFone(ind2 - 35)

Next

Close iARQ

Inibe_Frames

Habilita_Tudo2

lblCopyright.Caption = ".:: Agenda Telefônica"

Pagina = Pag_Atual

Mostra_Letra (Mid(fra2.Caption, 1, 1))

Case 9

Open sFileINI For Output As iARQ

Print #iARQ, "{ Página 9 }"

For ind2 = 40 To 44 Step 1

Print #iARQ, "Nome" & ind2 & "=" & txtNome(ind2 - 40)

Print #iARQ, "Telefone" & ind2 & "=" & txtFone(ind2 - 40)

Next

Close iARQ

Inibe_Frames

Habilita_Tudo2

lblCopyright.Caption = ".:: Agenda Telefônica"

Pagina = Pag_Atual

Mostra_Letra (Mid(fra2.Caption, 1, 1))

Case 10

Open sFileINI For Output As iARQ

Print #iARQ, "{ Página 10 }"

For ind2 = 45 To 49 Step 1

Print #iARQ, "Nome" & ind2 & "=" & txtNome(ind2 - 45)

Print #iARQ, "Telefone" & ind2 & "=" & txtFone(ind2 - 45)

Next

Close iARQ

Inibe_Frames

Habilita_Tudo2

lblCopyright.Caption = ".:: Agenda Telefônica"

Pagina = Pag_Atual

Mostra_Letra (Mid(fra2.Caption, 1, 1))

Page 147: Curso Visual Basic (Págs.222)

147

End Select

End Function

Rem Função para mostrar a agenda

Function Mostra_Letra(Letra As String)

Mostra

Dim sLine As String

Dim iARQ As Integer

Select Case Pagina

Case 1

Primeiro.Enabled = False

Anterior.Enabled = False

Proximo.Enabled = True

Ultimo.Enabled = True

Case 10

Primeiro.Enabled = True

Anterior.Enabled = True

Proximo.Enabled = False

Ultimo.Enabled = False

Case Else

Primeiro.Enabled = True

Anterior.Enabled = True

Proximo.Enabled = True

Ultimo.Enabled = True

End Select

SA = 0

lblTot.Visible = True

lblPag.Visible = True

lblPagina.Visible = True

lblPagina.Caption = Pagina

For SA = 0 To 4 Step 1

iARQ = FreeFile

Open (App.Path & "\Dat\" & Letra & "\" & Pagina & ".dat") For Input As iARQ

Page 148: Curso Visual Basic (Págs.222)

148

Do While Not EOF(iARQ)

Line Input #iARQ, sLine

Select Case Pagina

Case 1

Select Case Separate_Parametre(sLine)

Case "Nome" & SA

INI_Parametre(1) = Separate_Value(sLine)

Case "Telefone" & SA

INI_Parametre(2) = Separate_Value(sLine)

End Select

Case 2

Select Case Separate_Parametre(sLine)

Case "Nome" & (SA + 5)

INI_Parametre(1) = Separate_Value(sLine)

Case "Telefone" & (SA + 5)

INI_Parametre(2) = Separate_Value(sLine)

End Select

Case 3

Select Case Separate_Parametre(sLine)

Case "Nome" & (SA + 10)

INI_Parametre(1) = Separate_Value(sLine)

Case "Telefone" & (SA + 10)

INI_Parametre(2) = Separate_Value(sLine)

End Select

Case 4

Select Case Separate_Parametre(sLine)

Case "Nome" & (SA + 15)

INI_Parametre(1) = Separate_Value(sLine)

Case "Telefone" & (SA + 15)

INI_Parametre(2) = Separate_Value(sLine)

End Select

Case 5

Select Case Separate_Parametre(sLine)

Case "Nome" & (SA + 20)

Page 149: Curso Visual Basic (Págs.222)

149

INI_Parametre(1) = Separate_Value(sLine)

Case "Telefone" & (SA + 20)

INI_Parametre(2) = Separate_Value(sLine)

End Select

Case 6

Select Case Separate_Parametre(sLine)

Case "Nome" & (SA + 25)

INI_Parametre(1) = Separate_Value(sLine)

Case "Telefone" & (SA + 25)

INI_Parametre(2) = Separate_Value(sLine)

End Select

Case 7

Select Case Separate_Parametre(sLine)

Case "Nome" & (SA + 30)

INI_Parametre(1) = Separate_Value(sLine)

Case "Telefone" & (SA + 30)

INI_Parametre(2) = Separate_Value(sLine)

End Select

Case 8

Select Case Separate_Parametre(sLine)

Case "Nome" & (SA + 35)

INI_Parametre(1) = Separate_Value(sLine)

Case "Telefone" & (SA + 35)

INI_Parametre(2) = Separate_Value(sLine)

End Select

Case 9

Select Case Separate_Parametre(sLine)

Case "Nome" & (SA + 40)

INI_Parametre(1) = Separate_Value(sLine)

Case "Telefone" & (SA + 40)

INI_Parametre(2) = Separate_Value(sLine)

End Select

Case 10

Select Case Separate_Parametre(sLine)

Page 150: Curso Visual Basic (Págs.222)

150

Case "Nome" & (SA + 45)

INI_Parametre(1) = Separate_Value(sLine)

Case "Telefone" & (SA + 45)

INI_Parametre(2) = Separate_Value(sLine)

End Select

End Select

Loop

Close iARQ

txtNome(SA).Text = INI_Parametre(1)

txtFone(SA).Text = INI_Parametre(2)

lblMostraNome(SA).Caption = INI_Parametre(1)

lblMostraTelefone(SA).Caption = INI_Parametre(2)

Next

End Function

Function Inibe()

Ultimo.Visible = False

Anterior.Visible = False

Proximo.Visible = False

Primeiro.Visible = False

For SA = 0 To 4 Step 1

lblNome(SA).Visible = False

lblTelefone(SA).Visible = False

txtNome(SA).Visible = False

txtFone(SA).Visible = False

Next

End Function

Function Mostra()

Ultimo.Visible = True

Anterior.Visible = True

Proximo.Visible = True

Primeiro.Visible = True

For SA = 0 To 4 Step 1

Page 151: Curso Visual Basic (Págs.222)

151

lblNome(SA).Visible = True

lblTelefone(SA).Visible = True

txtNome(SA).Visible = True

txtFone(SA).Visible = True

Next

End Function

Private Sub Anterior_MouseDown(Button As Integer, Shift As Integer, x As Single, y

As Single)

Pagina = Pagina - 1

Mostra_Letra ((Mid(fra2.Caption, 1, 1)))

End Sub

Private Sub Anterior_MouseMove(Button As Integer, Shift As Integer, x As Single, y

As Single)

Anterior.FontUnderline = True

End Sub

Private Sub Form_Load()

Pagina = 1

Mostra_Letra (A)

fra2.Caption = "A:"

End Sub

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, x As Single, y As

Single)

Dim rec&

If Button And 1 Then

ReleaseCapture

rec& = SendMessage(Me.hWnd, &HA1, 2, 0&)

End If

End Sub

Function Reseta_Labels1()

lblSair.FontUnderline = False

Page 152: Curso Visual Basic (Págs.222)

152

lblPesquisar.FontUnderline = False

lblIncluir.FontUnderline = False

lblExcluir.FontUnderline = False

End Function

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, x As Single, y As

Single)

Reseta_Labels1

End Sub

Private Sub fra1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As

Single)

Dim rec&

If Button And 1 Then

ReleaseCapture

rec& = SendMessage(Me.hWnd, &HA1, 2, 0&)

End If

End Sub

Private Sub fra2_MouseDown(Button As Integer, Shift As Integer, x As Single, y As

Single)

Dim rec&

If Button And 1 Then

ReleaseCapture

rec& = SendMessage(Me.hWnd, &HA1, 2, 0&)

End If

End Sub

Function Inibe_Controles()

Anterior.FontUnderline = False

Proximo.FontUnderline = False

Ultimo.FontUnderline = False

Primeiro.FontUnderline = False

End Function

Page 153: Curso Visual Basic (Págs.222)

153

Private Sub fra2_MouseMove(Button As Integer, Shift As Integer, x As Single, y As

Single)

Reseta_Labels1

Inibe_Controles

End Sub

Private Sub lblExcluir_MouseDown(Button As Integer, Shift As Integer, x As Single, y

As Single)

If fraCampos1.Visible = True Then

txtNome(0).Text = ""

txtFone(0).Text = ""

Desabilita_Tudo2

Pag_Atual = Pagina

lblCopyright.Caption = Space(15) & ".:: Excluindo"

Salva (App.Path & "\Dat\" & (Mid(fra2.Caption, 1, 1)) & "\" & Pagina & ".dat")

End If

If fraCampos2.Visible = True Then

txtNome(1).Text = ""

txtFone(1).Text = ""

Desabilita_Tudo2

Pag_Atual = Pagina

lblCopyright.Caption = Space(15) & ".:: Excluindo"

Salva (App.Path & "\Dat\" & (Mid(fra2.Caption, 1, 1)) & "\" & Pagina & ".dat")

End If

If fraCampos3.Visible = True Then

txtNome(2).Text = ""

txtFone(2).Text = ""

Desabilita_Tudo2

Pag_Atual = Pagina

lblCopyright.Caption = Space(15) & ".:: Excluindo"

Salva (App.Path & "\Dat\" & (Mid(fra2.Caption, 1, 1)) & "\" & Pagina & ".dat")

End If

If fraCampos4.Visible = True Then

Page 154: Curso Visual Basic (Págs.222)

154

txtNome(3).Text = ""

txtFone(3).Text = ""

Desabilita_Tudo2

Pag_Atual = Pagina

lblCopyright.Caption = Space(15) & ".:: Excluindo"

Salva (App.Path & "\Dat\" & (Mid(fra2.Caption, 1, 1)) & "\" & Pagina & ".dat")

End If

If fraCampos5.Visible = True Then

txtNome(4).Text = ""

txtFone(4).Text = ""

Desabilita_Tudo2

Pag_Atual = Pagina

lblCopyright.Caption = Space(15) & ".:: Excluindo"

Salva (App.Path & "\Dat\" & (Mid(fra2.Caption, 1, 1)) & "\" & Pagina & ".dat")

End If

End Sub

Private Sub lblExcluir_MouseMove(Button As Integer, Shift As Integer, x As Single, y

As Single)

lblExcluir.FontUnderline = True

End Sub

Private Sub lblIncluir_MouseDown(Button As Integer, Shift As Integer, x As Single, y

As Single)

If fraCampos1.Visible = True Then

Letra_Salvar = (Mid(txtNome(0).Text, 1, 1))

End If

If fraCampos2.Visible = True Then

Letra_Salvar = (Mid(txtNome(1).Text, 1, 1))

End If

If fraCampos3.Visible = True Then

Letra_Salvar = (Mid(txtNome(2).Text, 1, 1))

End If

If fraCampos4.Visible = True Then

Page 155: Curso Visual Basic (Págs.222)

155

Letra_Salvar = (Mid(txtNome(3).Text, 1, 1))

End If

If fraCampos5.Visible = True Then

Letra_Salvar = (Mid(txtNome(4).Text, 1, 1))

End If

If (Mid(fra2.Caption, 1, 1)) <> UCase(Letra_Salvar) Then

MsgBox "Nome diferente da letra da agenda!", vbCritical

Else

Desabilita_Tudo2

Pag_Atual = Pagina

lblCopyright.Caption = Space(15) & ".:: Salvando"

Salva (App.Path & "\Dat\" & (Mid(fra2.Caption, 1, 1)) & "\" & Pagina & ".dat")

End If

End Sub

Private Sub lblIncluir_MouseMove(Button As Integer, Shift As Integer, x As Single, y

As Single)

lblIncluir.FontUnderline = True

End Sub

Private Sub lblNome_MouseDown(Index As Integer, Button As Integer, Shift As

Integer, x As Single, y As Single)

Select Case Index

Case 0

Desabilita_Tudo

fraCampos1.Visible = True

NomeO = txtNome(0).Text

FoneO = txtFone(0).Text

Case 1

Desabilita_Tudo

fraCampos2.Visible = True

NomeO = txtNome(1).Text

FoneO = txtFone(1).Text

Case 2

Page 156: Curso Visual Basic (Págs.222)

156

Desabilita_Tudo

fraCampos3.Visible = True

NomeO = txtNome(2).Text

FoneO = txtFone(2).Text

Case 3

Desabilita_Tudo

fraCampos4.Visible = True

NomeO = txtNome(3).Text

FoneO = txtFone(3).Text

Case 4

Desabilita_Tudo

fraCampos5.Visible = True

NomeO = txtNome(4).Text

FoneO = txtFone(4).Text

End Select

End Sub

Function Desabilita_Tudo()

fra1.Enabled = False

A.Enabled = False

B.Enabled = False

C.Enabled = False

D.Enabled = False

E.Enabled = False

F.Enabled = False

G.Enabled = False

H.Enabled = False

I.Enabled = False

J.Enabled = False

L.Enabled = False

M.Enabled = False

N.Enabled = False

O.Enabled = False

P.Enabled = False

Page 157: Curso Visual Basic (Págs.222)

157

Q.Enabled = False

R.Enabled = False

S.Enabled = False

T.Enabled = False

U.Enabled = False

V.Enabled = False

XA.Enabled = False

Z.Enabled = False

W.Enabled = False

YA.Enabled = False

Anterior.Enabled = False

Proximo.Enabled = False

Ultimo.Enabled = False

Primeiro.Enabled = False

For II = 0 To 4 Step 1

lblNome(II).Enabled = False

lblTelefone(II).Enabled = False

lblMostraNome(II).Enabled = False

lblMostraTelefone(II).Enabled = False

Next

lblPag.Enabled = False

lblPagina.Enabled = False

lblPesquisar.Enabled = False

lblTot.Enabled = False

lblIncluir.Enabled = True

lblExcluir.Enabled = True

End Function

Function Habilita_Tudo()

fra1.Enabled = True

A.Enabled = True

B.Enabled = True

C.Enabled = True

D.Enabled = True

Page 158: Curso Visual Basic (Págs.222)

158

E.Enabled = True

F.Enabled = True

G.Enabled = True

H.Enabled = True

I.Enabled = True

J.Enabled = True

L.Enabled = True

M.Enabled = True

N.Enabled = True

O.Enabled = True

P.Enabled = True

Q.Enabled = True

R.Enabled = True

S.Enabled = True

T.Enabled = True

U.Enabled = True

V.Enabled = True

XA.Enabled = True

Z.Enabled = True

W.Enabled = True

YA.Enabled = True

Select Case Pagina

Case 1

Primeiro.Enabled = False

Anterior.Enabled = False

Proximo.Enabled = True

Ultimo.Enabled = True

Case 10

Primeiro.Enabled = True

Anterior.Enabled = True

Proximo.Enabled = False

Ultimo.Enabled = False

Case Else

Primeiro.Enabled = True

Page 159: Curso Visual Basic (Págs.222)

159

Anterior.Enabled = True

Proximo.Enabled = True

Ultimo.Enabled = True

End Select

For II = 0 To 4 Step 1

lblNome(II).Enabled = True

lblTelefone(II).Enabled = True

lblMostraNome(II).Enabled = True

lblMostraTelefone(II).Enabled = True

Next

lblPag.Enabled = True

lblPagina.Enabled = True

lblPesquisar.Enabled = True

lblTot.Enabled = True

lblIncluir.Enabled = False

lblExcluir.Enabled = False

End Function

Function Desabilita_Tudo2()

fra1.Enabled = False

fra2.Enabled = False

A.Enabled = False

B.Enabled = False

C.Enabled = False

D.Enabled = False

E.Enabled = False

F.Enabled = False

G.Enabled = False

H.Enabled = False

I.Enabled = False

J.Enabled = False

L.Enabled = False

M.Enabled = False

N.Enabled = False

Page 160: Curso Visual Basic (Págs.222)

160

O.Enabled = False

P.Enabled = False

Q.Enabled = False

R.Enabled = False

S.Enabled = False

T.Enabled = False

U.Enabled = False

V.Enabled = False

XA.Enabled = False

Z.Enabled = False

W.Enabled = False

YA.Enabled = False

Anterior.Enabled = False

Proximo.Enabled = False

Ultimo.Enabled = False

Primeiro.Enabled = False

For II = 0 To 4 Step 1

lblNome(II).Enabled = False

lblTelefone(II).Enabled = False

lblMostraNome(II).Enabled = False

lblMostraTelefone(II).Enabled = False

Next

lblPag.Enabled = False

lblPagina.Enabled = False

lblPesquisar.Enabled = False

lblTot.Enabled = False

lblIncluir.Enabled = False

lblExcluir.Enabled = False

lblSair.Enabled = False

End Function

Function Habilita_Tudo2()

fra1.Enabled = True

fra2.Enabled = True

Page 161: Curso Visual Basic (Págs.222)

161

A.Enabled = True

B.Enabled = True

C.Enabled = True

D.Enabled = True

E.Enabled = True

F.Enabled = True

G.Enabled = True

H.Enabled = True

I.Enabled = True

J.Enabled = True

L.Enabled = True

M.Enabled = True

N.Enabled = True

O.Enabled = True

P.Enabled = True

Q.Enabled = True

R.Enabled = True

S.Enabled = True

T.Enabled = True

U.Enabled = True

V.Enabled = True

XA.Enabled = True

Z.Enabled = True

W.Enabled = True

YA.Enabled = True

Select Case Pagina

Case 1

Primeiro.Enabled = False

Anterior.Enabled = False

Proximo.Enabled = True

Ultimo.Enabled = True

Case 10

Primeiro.Enabled = True

Anterior.Enabled = True

Page 162: Curso Visual Basic (Págs.222)

162

Proximo.Enabled = False

Ultimo.Enabled = False

Case Else

Primeiro.Enabled = True

Anterior.Enabled = True

Proximo.Enabled = True

Ultimo.Enabled = True

End Select

For II = 0 To 4 Step 1

lblNome(II).Enabled = True

lblTelefone(II).Enabled = True

lblMostraNome(II).Enabled = True

lblMostraTelefone(II).Enabled = True

Next

lblPag.Enabled = True

lblPagina.Enabled = True

lblPesquisar.Enabled = True

lblTot.Enabled = True

lblSair.Enabled = True

End Function

Private Sub lblPesquisar_MouseMove(Button As Integer, Shift As Integer, x As Single,

y As Single)

lblPesquisar.FontUnderline = True

End Sub

Private Sub lblSair_MouseDown(Button As Integer, Shift As Integer, x As Single, y As

Single)

Unload Me

End Sub

Private Sub lblSair_MouseMove(Button As Integer, Shift As Integer, x As Single, y As

Single)

lblSair.FontUnderline = True

End Sub

Page 163: Curso Visual Basic (Págs.222)

163

Private Sub lblSobre_MouseMove(Button As Integer, Shift As Integer, x As Single, y

As Single)

lblSobre.FontUnderline = True

End Sub

Private Sub lblVoltar_MouseDown(Index As Integer, Button As Integer, Shift As

Integer, x As Single, y As Single)

Select Case Index

Case 10

If Status2 = "" Then

txtNome(0).Text = NomeO

txtFone(0).Text = FoneO

Else

End If

Habilita_Tudo

fraCampos1.Visible = False

Case 0

If Status2 = "" Then

txtNome(1).Text = NomeO

txtFone(1).Text = FoneO

Else

End If

Habilita_Tudo

fraCampos2.Visible = False

Case 1

If Status2 = "" Then

txtNome(2).Text = NomeO

txtFone(2).Text = FoneO

Else

End If

Habilita_Tudo

fraCampos3.Visible = False

Case 2

Page 164: Curso Visual Basic (Págs.222)

164

If Status2 = "" Then

txtNome(3).Text = NomeO

txtFone(3).Text = FoneO

Else

End If

Habilita_Tudo

fraCampos5.Visible = False

Case 3

If Status2 = "" Then

txtNome(4).Text = NomeO

txtFone(4).Text = FoneO

Else

End If

Habilita_Tudo

fraCampos4.Visible = False

End Select

End Sub

Private Sub Primeiro_MouseDown(Button As Integer, Shift As Integer, x As Single, y

As Single)

Pagina = 1

Mostra_Letra ((Mid(fra2.Caption, 1, 1)))

End Sub

Private Sub Primeiro_MouseMove(Button As Integer, Shift As Integer, x As Single, y

As Single)

Primeiro.FontUnderline = True

End Sub

Private Sub Proximo_MouseDown(Button As Integer, Shift As Integer, x As Single, y

As Single)

Pagina = Pagina + 1

Mostra_Letra ((Mid(fra2.Caption, 1, 1)))

End Sub

Private Sub Proximo_MouseMove(Button As Integer, Shift As Integer, x As Single, y

As Single)

Proximo.FontUnderline = True

Page 165: Curso Visual Basic (Págs.222)

165

End Sub

Private Sub Tmr_Mostra_Label_Timer()

lblNome(I2).BorderStyle = 0

End Sub

Private Sub Ultimo_MouseDown(Button As Integer, Shift As Integer, x As Single, y As

Single)

Pagina = 10

Mostra_Letra ((Mid(fra2.Caption, 1, 1)))

End Sub

Private Sub Ultimo_MouseMove(Button As Integer, Shift As Integer, x As Single, y As

Single)

Ultimo.FontUnderline = True

End Sub

Rem Ao passar o mouse sobre o fra1 todas as letras _

ficam não sublinhadas:

Private Sub fra1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As

Single)

A.FontUnderline = False

B.FontUnderline = False

C.FontUnderline = False

D.FontUnderline = False

E.FontUnderline = False

F.FontUnderline = False

G.FontUnderline = False

H.FontUnderline = False

I.FontUnderline = False

J.FontUnderline = False

L.FontUnderline = False

M.FontUnderline = False

N.FontUnderline = False

O.FontUnderline = False

Page 166: Curso Visual Basic (Págs.222)

166

P.FontUnderline = False

Q.FontUnderline = False

R.FontUnderline = False

S.FontUnderline = False

T.FontUnderline = False

U.FontUnderline = False

V.FontUnderline = False

XA.FontUnderline = False

Z.FontUnderline = False

W.FontUnderline = False

YA.FontUnderline = False

End Sub

Rem Ao passar o mouse sobre os labels esses ficam _

sublinhados:

Private Sub A_MouseMove(Button As Integer, Shift As Integer, x As Single, y As

Single)

A.FontUnderline = True

End Sub

Private Sub B_MouseMove(Button As Integer, Shift As Integer, x As Single, y As

Single)

B.FontUnderline = True

End Sub

Private Sub C_MouseMove(Button As Integer, Shift As Integer, x As Single, y As

Single)

C.FontUnderline = True

End Sub

Private Sub D_MouseMove(Button As Integer, Shift As Integer, x As Single, y As

Single)

D.FontUnderline = True

End Sub

Private Sub E_MouseMove(Button As Integer, Shift As Integer, x As Single, y As

Single)

E.FontUnderline = True

Page 167: Curso Visual Basic (Págs.222)

167

End Sub

Private Sub F_MouseMove(Button As Integer, Shift As Integer, x As Single, y As

Single)

F.FontUnderline = True

End Sub

Private Sub G_MouseMove(Button As Integer, Shift As Integer, x As Single, y As

Single)

G.FontUnderline = True

End Sub

Private Sub H_MouseMove(Button As Integer, Shift As Integer, x As Single, y As

Single)

H.FontUnderline = True

End Sub

Private Sub I_MouseMove(Button As Integer, Shift As Integer, x As Single, y As

Single)

I.FontUnderline = True

End Sub

Private Sub J_MouseMove(Button As Integer, Shift As Integer, x As Single, y As

Single)

J.FontUnderline = True

End Sub

Private Sub L_MouseMove(Button As Integer, Shift As Integer, x As Single, y As

Single)

L.FontUnderline = True

End Sub

Private Sub M_MouseMove(Button As Integer, Shift As Integer, x As Single, y As

Single)

M.FontUnderline = True

End Sub

Private Sub N_MouseMove(Button As Integer, Shift As Integer, x As Single, y As

Single)

N.FontUnderline = True

End Sub

Page 168: Curso Visual Basic (Págs.222)

168

Private Sub O_MouseMove(Button As Integer, Shift As Integer, x As Single, y As

Single)

O.FontUnderline = True

End Sub

Private Sub P_MouseMove(Button As Integer, Shift As Integer, x As Single, y As

Single)

P.FontUnderline = True

End Sub

Private Sub Q_MouseMove(Button As Integer, Shift As Integer, x As Single, y As

Single)

Q.FontUnderline = True

End Sub

Private Sub R_MouseMove(Button As Integer, Shift As Integer, x As Single, y As

Single)

R.FontUnderline = True

End Sub

Private Sub S_MouseMove(Button As Integer, Shift As Integer, x As Single, y As

Single)

S.FontUnderline = True

End Sub

Private Sub T_MouseMove(Button As Integer, Shift As Integer, x As Single, y As

Single)

T.FontUnderline = True

End Sub

Private Sub U_MouseMove(Button As Integer, Shift As Integer, x As Single, y As

Single)

U.FontUnderline = True

End Sub

Private Sub V_MouseMove(Button As Integer, Shift As Integer, x As Single, y As

Single)

V.FontUnderline = True

End Sub

Private Sub XA_MouseMove(Button As Integer, Shift As Integer, x As Single, y As

Single)

Page 169: Curso Visual Basic (Págs.222)

169

XA.FontUnderline = True

End Sub

Private Sub Z_MouseMove(Button As Integer, Shift As Integer, x As Single, y As

Single)

Z.FontUnderline = True

End Sub

Private Sub W_MouseMove(Button As Integer, Shift As Integer, x As Single, y As

Single)

W.FontUnderline = True

End Sub

Private Sub YA_MouseMove(Button As Integer, Shift As Integer, x As Single, y As

Single)

YA.FontUnderline = True

End Sub

Rem Quando clicar em uma das letras o caption do fra2 _

assume o nome da letra, e carrega a agenda:

Private Sub A_MouseDown(Button As Integer, Shift As Integer, x As Single, y As

Single)

Pagina = 1

Mostra_Letra ("A")

fra2.Caption = "A:"

End Sub

Private Sub B_MouseDown(Button As Integer, Shift As Integer, x As Single, y As

Single)

Pagina = 1

Mostra_Letra ("B")

fra2.Caption = "B:"

End Sub

Private Sub C_MouseDown(Button As Integer, Shift As Integer, x As Single, y As

Single)

Pagina = 1

Mostra_Letra ("C")

fra2.Caption = "C:"

Page 170: Curso Visual Basic (Págs.222)

170

End Sub

Private Sub D_MouseDown(Button As Integer, Shift As Integer, x As Single, y As

Single)

Pagina = 1

Mostra_Letra ("D")

fra2.Caption = "D:"

End Sub

Private Sub E_MouseDown(Button As Integer, Shift As Integer, x As Single, y As

Single)

Pagina = 1

Mostra_Letra ("E")

fra2.Caption = "E:"

End Sub

Private Sub F_MouseDown(Button As Integer, Shift As Integer, x As Single, y As

Single)

Pagina = 1

Mostra_Letra ("F")

fra2.Caption = "F:"

End Sub

Private Sub G_MouseDown(Button As Integer, Shift As Integer, x As Single, y As

Single)

Pagina = 1

Mostra_Letra ("G")

fra2.Caption = "G:"

End Sub

Private Sub H_MouseDown(Button As Integer, Shift As Integer, x As Single, y As

Single)

Pagina = 1

Mostra_Letra ("H")

fra2.Caption = "H:"

End Sub

Private Sub I_MouseDown(Button As Integer, Shift As Integer, x As Single, y As

Single)

Pagina = 1

Page 171: Curso Visual Basic (Págs.222)

171

Mostra_Letra ("I")

fra2.Caption = "I:"

End Sub

Private Sub J_MouseDown(Button As Integer, Shift As Integer, x As Single, y As

Single)

Pagina = 1

Mostra_Letra ("J")

fra2.Caption = "J:"

End Sub

Private Sub L_MouseDown(Button As Integer, Shift As Integer, x As Single, y As

Single)

Pagina = 1

Mostra_Letra ("L")

fra2.Caption = "L:"

End Sub

Private Sub M_MouseDown(Button As Integer, Shift As Integer, x As Single, y As

Single)

Pagina = 1

Mostra_Letra ("M")

fra2.Caption = "M:"

End Sub

Private Sub N_MouseDown(Button As Integer, Shift As Integer, x As Single, y As

Single)

Pagina = 1

Mostra_Letra ("N")

fra2.Caption = "N:"

End Sub

Private Sub O_MouseDown(Button As Integer, Shift As Integer, x As Single, y As

Single)

Pagina = 1

Mostra_Letra ("O")

fra2.Caption = "O:"

End Sub

Page 172: Curso Visual Basic (Págs.222)

172

Private Sub P_MouseDown(Button As Integer, Shift As Integer, x As Single, y As

Single)

Pagina = 1

Mostra_Letra ("P")

fra2.Caption = "P:"

End Sub

Private Sub Q_MouseDown(Button As Integer, Shift As Integer, x As Single, y As

Single)

Pagina = 1

Mostra_Letra ("Q")

fra2.Caption = "Q:"

End Sub

Private Sub R_MouseDown(Button As Integer, Shift As Integer, x As Single, y As

Single)

Pagina = 1

Mostra_Letra ("R")

fra2.Caption = "R:"

End Sub

Private Sub S_MouseDown(Button As Integer, Shift As Integer, x As Single, y As

Single)

Pagina = 1

Mostra_Letra ("S")

fra2.Caption = "S:"

End Sub

Private Sub T_MouseDown(Button As Integer, Shift As Integer, x As Single, y As

Single)

Pagina = 1

Mostra_Letra ("T")

fra2.Caption = "T:"

End Sub

Private Sub U_MouseDown(Button As Integer, Shift As Integer, x As Single, y As

Single)

Pagina = 1

Mostra_Letra ("U")

Page 173: Curso Visual Basic (Págs.222)

173

fra2.Caption = "U:"

End Sub

Private Sub V_MouseDown(Button As Integer, Shift As Integer, x As Single, y As

Single)

Pagina = 1

Mostra_Letra ("V")

fra2.Caption = "V:"

End Sub

Private Sub XA_MouseDown(Button As Integer, Shift As Integer, x As Single, y As

Single)

Pagina = 1

Mostra_Letra ("X")

fra2.Caption = "X:"

End Sub

Private Sub Z_MouseDown(Button As Integer, Shift As Integer, x As Single, y As

Single)

Pagina = 1

Mostra_Letra ("Z")

fra2.Caption = "Z:"

End Sub

Private Sub YA_MouseDown(Button As Integer, Shift As Integer, x As Single, y As

Single)

Pagina = 1

Mostra_Letra ("Y")

fra2.Caption = "Y:"

End Sub

Private Sub W_MouseDown(Button As Integer, Shift As Integer, x As Single, y As

Single)

Pagina = 1

Mostra_Letra ("W")

fra2.Caption = "W:"

End Sub

Page 174: Curso Visual Basic (Págs.222)

174

Private Sub lblPesquisar_MouseDown(Button As Integer, Shift As Integer, x As

Single, y As Single)

Desabilita_Tudo2

lblCopyright.Caption = Space(15) & ".:: Pesquisar"

I2 = 0

Status = 0

Pag_Atual = Pagina

Letra_Atual = (Mid(fra2.Caption, 1, 1))

Rem O usuário entra com o nome

Nome = InputBox("Digite o nome a ser pesquisado:")

Nome_Atual = Nome

Nome = UCase(Nome)

Letra_Pesquisa = UCase((Mid(Nome, 1, 1)))

If Nome = "" Then

Pagina = Pag_Atual

Mostra_Letra (Mid(fra2.Caption, 1, 1))

Habilita_Tudo2

Else

Mostra_Letra (Letra_Pesquisa)

fra2.Caption = Letra_Pesquisa & ":"

For Pag = 1 To 10 Step 1

Pagina = Pag

Mostra_Letra (Mid(fra2.Caption, 1, 1))

For I2 = 0 To 4 Step 1

If UCase(lblMostraNome(I2).Caption) = Nome Then

Habilita_Tudo2

Status = "1"

Tmr_Mostra_Label.Enabled = True

lblNome(I2).BorderStyle = 1

lblCopyright.Caption = ".:: Agenda Telefônica"

Exit Sub

End If

Next

Next

Page 175: Curso Visual Basic (Págs.222)

175

If Status = 0 Then

MsgBox "O nome " & Nome_Atual & " não foi encontrado!", vbInformation

Mostra_Letra (Letra_Atual)

fra2.Caption = Letra_Atual & ":"

Pagina = Pag_Atual

Mostra_Letra (Mid(fra2.Caption, 1, 1))

Habilita_Tudo2

lblCopyright.Caption = ".:: Agenda Telefônica"

End If

End If

Mostra_Letra (Letra_Atual)

fra2.Caption = Letra_Atual & ":"

Pagina = Pag_Atual

Mostra_Letra (Mid(fra2.Caption, 1, 1))

Habilita_Tudo2

lblCopyright.Caption = ".:: Agenda Telefônica"

End Sub

Page 176: Curso Visual Basic (Págs.222)

176

Public rsVenda As New ADODB.Recordset

Public rsVendaDet As New ADODB.Recordset

Private Vfrase As String

Private rsProduto As New ADODB.Recordset

Private VProduto As String

Private rsCliente As New ADODB.Recordset

Private VCliente As String

Private Bruto As Currency

Private ContadorVenda As Integer

Private Const CB_FINDSTRING As Long = &H14C

Private Declare Function SendMessage Lib "USER32" Alias "SendMessageA" (ByVal

hWnd As Long, _

ByVal wMsg As Long, _

ByVal wParam As Long, _

Page 177: Curso Visual Basic (Págs.222)

177

lParam As Any) As Long

Public Function Combo_AutoCompletar(xCombo As ComboBox, ByVal xKeyAscii As

Long, Optional ByVal xUpperCase As Boolean = True) As Long

Dim lngFind As Long, intPos As Long, intLength As Long, tStr As String

With xCombo

If xKeyAscii = 8 Then

If .SelStart = 0 Then Exit Function

.SelStart = .SelStart - 1

.SelLength = Len(.Text)

.SelText = vbNullString

Else

intPos = .SelStart

tStr = .Text

.SelText = (Chr$(xKeyAscii))

' .SelText = IIf(xUpperCase, _

' UCase$(Chr$(xKeyAscii)), _

' LCase$(Chr$(xKeyAscii)))

End If

lngFind = SendMessage(.hWnd, CB_FINDSTRING, 0, ByVal .Text)

If lngFind = -1 Then

.Text = tStr

.SelStart = intPos

.SelLength = (Len(.Text) - intPos)

Combo_AutoCompletar = xKeyAscii

Else

intPos = .SelStart

intLength = Len(.List(lngFind)) - Len(.Text)

.SelText = .SelText & Right$(.List(lngFind), intLength)

.SelStart = intPos

.SelLength = intLength

End If

End With

End Function

Page 178: Curso Visual Basic (Págs.222)

178

Private Sub cboCliente_KeyPress(KeyAscii As Integer)

KeyAscii = Asc(UCase(Chr(KeyAscii)))

If InStr("0123456789<>|\;,.?/[{}]+=§-_)(*&%$#@!*", Chr(KeyAscii)) <> 0 Then

KeyAscii = 0

End If

KeyAscii = Combo_AutoCompletar(cboCliente, KeyAscii)

End Sub

Private Sub cboCliente_LostFocus()

If cboCliente.Text = Empty Then

Exit Sub

Else

Dim VConNome As String

VConNome = Chr(39) & CStr(cboCliente.Text) & Chr(39)

Vfrase = "Select * from Clientes Where Nome_Cli=" & VConNome

Set rsConClientes = mdiPrincipal.cnBiblioteca.Execute(Vfrase)

If rsConClientes.BOF = True And rsConClientes.EOF = True Then

'cliente não cadastrado

MsgBox "Cliente Não Encontrado, caso seja Cliente novo Cadastrar!",

vbInformation, "Atenção"

cboCliente.Text = ""

cboCliente.SetFocus

'fecha a conexão

rsConClientes.Close

Exit Sub

End If

txtCodCli.Text = rsConClientes("Cod_Cli")

End If

End Sub

Page 179: Curso Visual Basic (Págs.222)

179

Private Sub cboDescricao_KeyPress(KeyAscii As Integer)

KeyAscii = Asc(UCase(Chr(KeyAscii)))

If InStr("0123456789<>|\;,.?/[{}]+=§-_)(*&%$#@!*", Chr(KeyAscii)) <> 0 Then

KeyAscii = 0

End If

KeyAscii = Combo_AutoCompletar(cboDescricao, KeyAscii)

End Sub

Private Sub HabilitaCampos()

txtCodPro.Enabled = True

cboDescricao.Enabled = True

txtQtd.Enabled = True

Command1.Enabled = True

Command2.Enabled = True

cboFormPagamento.Enabled = True

txtDesc.Enabled = True

txtJuros.Enabled = True

txtCodCli.Enabled = True

cboCliente.Enabled = True

End Sub

Private Sub cmdAltera_Click()

HabilitaCampos

cmdFinalizar.Enabled = False

cmdFechar.Enabled = False

cmdCalcular.Enabled = True

cmdAltera.Enabled = False

txtTotal.Text = Format(Bruto, "currency")

lblTotal.Caption = Format(Bruto, "currency")

lbltotal2.Caption = Bruto

End Sub

Private Sub cmdCalcular_Click()

Dim Vtotal As Currency

If fgItem.Rows = 1 Then

Page 180: Curso Visual Basic (Págs.222)

180

MsgBox "Não há produtos para finalizar Venda", vbOKOnly + vbExclamation,

"Aviso"

txtCodPro.SetFocus

Exit Sub

End If

If cboFormPagamento.Text = "Escolha a forma de Pagar" Then

MsgBox "Escolha a forma que o Cliente Pagará", vbOKOnly + vbExclamation,

"Aviso"

cboFormPagamento.SetFocus

Exit Sub

End If

If txtCodCli.Text = Empty Then

MsgBox "Entre com o código do Cliente para realizar a Venda!", vbOKOnly +

vbExclamation, "Aviso"

Exit Sub

End If

If cboCliente.Text = Empty Then

MsgBox "Entre com o Nome do Cliente para realizar a Venda!", vbOKOnly +

vbExclamation, "Aviso"

Exit Sub

End If

Bruto = CCur(txtTotal.Text)

If txtDesc.Text = 0 And txtJuros.Text = 0 Then

Vtotal = txtTotal.Text

ElseIf txtDesc.Text <> 0 Then

Vtotal = txtTotal.Text - txtTotal.Text * txtDesc.Text / 100

Else

Vtotal = txtTotal.Text + txtTotal.Text * txtJuros.Text / 100

End If

Page 181: Curso Visual Basic (Págs.222)

181

txtTotal.Text = Format(Vtotal, "currency")

lblTotal.Caption = Format(Vtotal, "currency")

lbltotal2.Caption = Vtotal

Desabilita

cmdFinalizar.Enabled = True

cmdCalcular.Enabled = False

cmdAltera.Enabled = True

cmdFechar.Enabled = False

End Sub

Private Sub Desabilita()

txtCodPro.Enabled = False

cboDescricao.Enabled = False

txtQtd.Enabled = False

Command1.Enabled = False

Command2.Enabled = False

cboFormPagamento.Enabled = False

txtDesc.Enabled = False

txtJuros.Enabled = False

txtCodCli.Enabled = False

cboCliente.Enabled = False

End Sub

Private Sub cmdCancelar_Click()

txtItem.Text = 1

txtCodPro.Text = ""

cboDescricao.Text = ""

txtQtd.Text = ""

txtPrecoUni.Text = ""

txtTotal.Text = "R$ 0,00"

With fgItem

.ColWidth(0) = 800

Page 182: Curso Visual Basic (Págs.222)

182

.ColWidth(1) = 2000

.ColWidth(2) = 3500

.ColWidth(3) = 1000

.ColWidth(4) = 2000

.ColWidth(5) = 1500

.Rows = 1

.TextMatrix(0, 0) = "Item"

.TextMatrix(0, 1) = "Código do Produto"

.TextMatrix(0, 2) = "Descrição"

.TextMatrix(0, 3) = "Quantidade"

.TextMatrix(0, 4) = "Preço Unitário"

.TextMatrix(0, 5) = "Subtotal"

End With

cboFormPagamento.Text = "Escolha a forma de Pagar"

txtDesc.Text = 0

txtCodCli.Text = ""

cboCliente.Text = ""

lblTotal.Caption = "R$ 0,00"

txtJuros.Text = 0

lstreferente.Clear

lbltotal2.Caption = "0,00"

HabilitaCampos

txtCodPro.SetFocus

cmdCalcular.Enabled = False

cmdFinalizar.Enabled = False

cmdAltera.Enabled = False

cmdFechar.Enabled = True

cmdCancelar.Enabled = False

End Sub

Private Sub cmdFechar_Click()

Unload Me

End Sub

Page 183: Curso Visual Basic (Págs.222)

183

Private Sub cmdFinalizar_Click()

Dim Vcontdor As Boolean

'Vcontadorvenda = lblVenda.Caption + 1

fgItem.RowSel = 1

Vcontador = False

rsVenda("Cod_Vend") = lblVenda.Caption

rsVenda("CodCli_Vend") = txtCodCli.Text

rsVenda("NomeCli_Vend") = cboCliente.Text

rsVenda("Funcionario_Vend") = lblVendedor.Caption

rsVenda("Data_Vend") = lblData.Caption

rsVenda.Update

Do Until Vcontador = True

rsVendaDet.AddNew

rsVendaDet("Item_VendDet") = fgItem.TextMatrix(fgItem.RowSel, Col)

rsVendaDet("CodPro_VendDet") = fgItem.TextMatrix(fgItem.RowSel, Col + 1)

rsVendaDet("DescPro_VendDet") = fgItem.TextMatrix(fgItem.RowSel, Col + 2)

rsVendaDet("Qtd_VendDet") = fgItem.TextMatrix(fgItem.RowSel, Col + 3)

rsVendaDet("Preco_VendDet") = fgItem.TextMatrix(fgItem.RowSel, Col + 4)

rsVendaDet("SubTotal_VendDet") = fgItem.TextMatrix(fgItem.RowSel, Col + 5)

rsVendaDet("CodVend_VendDet") = lblVenda.Caption

rsVendaDet("Cod_VendDet") = lblVenda.Caption

rsVendaDet("FormaPag_Vend") = cboFormPagamento.Text

rsVendaDet("Total_VendDet") = txtTotal.Text

rsVendaDet.Update

If fgItem.RowSel = fgItem.Rows - 1 Then

Vcontador = True

Else

fgItem.RowSel = fgItem.RowSel + 1

Page 184: Curso Visual Basic (Págs.222)

184

End If

Loop

cmdFinalizar.Enabled = False

cmdCancelar.Enabled = False

cmdAltera.Enabled = False

frmRecibo.Show

frmRecibo.Left = 4000

frmRecibo.Top = 1000

End Sub

Private Sub cmdNova_Click()

lblVenda.Caption = ContadorVenda

txtItem.Text = 1

txtCodPro.Text = ""

cboDescricao.Text = ""

txtQtd.Text = ""

txtPrecoUni.Text = ""

txtTotal.Text = "R$ 0,00"

With fgItem

.ColWidth(0) = 800

.ColWidth(1) = 2000

.ColWidth(2) = 3500

.ColWidth(3) = 1000

.ColWidth(4) = 2000

.ColWidth(5) = 1500

.Rows = 1

.TextMatrix(0, 0) = "Item"

.TextMatrix(0, 1) = "Código do Produto"

.TextMatrix(0, 2) = "Descrição"

.TextMatrix(0, 3) = "Quantidade"

.TextMatrix(0, 4) = "Preço Unitário"

.TextMatrix(0, 5) = "Subtotal"

End With

cboFormPagamento.Text = "Escolha a forma de Pagar"

Page 185: Curso Visual Basic (Págs.222)

185

txtDesc.Text = 0

txtCodCli.Text = ""

cboCliente.Text = ""

lblTotal.Caption = "R$ 0,00"

txtJuros.Text = 0

lstreferente.Clear

lbltotal2.Caption = "0,00"

HabilitaCampos

txtCodPro.SetFocus

cmdCalcular.Enabled = False

cmdFinalizar.Enabled = False

cmdAltera.Enabled = False

cmdFechar.Enabled = True

cmdCancelar.Enabled = False

cmdNova.Enabled = False

End Sub

Private Sub Command1_Click()

Dim Vtotal As Currency

If txtCodPro.Text = Empty Then

MsgBox "Entre com o Código do Produto", vbOKOnly + vbInformation, "Atenção"

txtCodPro.SetFocus

Exit Sub

End If

If cboDescricao.Text = Empty Then

MsgBox "Entre com a Descrição do Produto", vbOKOnly + vbInformation, "Atenção"

cboDescricao.SetFocus

Exit Sub

End If

If txtQtd.Text = Empty Then

Page 186: Curso Visual Basic (Págs.222)

186

MsgBox "Entre com a Quantidade de Produto", vbOKOnly + vbInformation,

"Atenção"

txtQtd.SetFocus

Exit Sub

End If

Vtotal = CCur(txtQtd.Text * txtPrecoUni.Text)

fgItem.AddItem txtItem.Text & Chr(9) & txtCodPro.Text & Chr(9) &

cboDescricao.Text & Chr(9) & txtQtd.Text & Chr(9) & txtPrecoUni.Text & Chr(9) &

Format(Vtotal, "Currency")

lblTotal.Caption = Format(lblTotal.Caption + Vtotal, "currency")

lbltotal2.Caption = lbltotal2.Caption + Vtotal

txtTotal.Text = Format(txtTotal.Text + Vtotal, "Currency")

txtItem.Text = txtItem.Text + 1

txtCodPro.Text = Empty

cboDescricao.Text = Empty

txtQtd.Text = Empty

txtPrecoUni.Text = Empty

txtCodPro.SetFocus

End Sub

Private Sub Command2_Click()

If fgItem.Row = 0 Then

MsgBox "Não há item selecionado para excluir!", vbOKOnly + vbExclamation,

"Aviso"

Exit Sub

End If

Dim Vsubtotal As Currency

If MsgBox("Deseja realmente excluir o produto?", vbYesNo + vbQuestion, "Aviso") =

vbYes Then

Page 187: Curso Visual Basic (Págs.222)

187

Vsubtotal = CCur(fgItem.TextMatrix(fgItem.RowSel, Col + 5))

lblTotal.Caption = Format(lblTotal.Caption - Vsubtotal, "currency")

lbltotal2.Caption = lbltotal2.Caption - Vsubtotal

txtTotal.Text = Format(txtTotal.Text - Vsubtotal, "Currency")

fgItem.RemoveItem (fgItem.RowSel)

txtCodPro.SetFocus

End If

End Sub

Private Sub Command3_Click()

frmConProdutos.Show

frmConProdutos.Top = 2000

frmConProdutos.Left = 2000

End Sub

Private Sub Command4_Click()

frmConClientes.Show

frmConClientes.Top = 2000

frmConClientes.Left = 2000

End Sub

Private Sub Form_Load()

lblVendedor.Caption = frmLogon.Vnome

lblData.Caption = Date

Dim Vcontador As Integer

fgItem.ColAlignment = center

rsVenda.Open "Vendas", mdiPrincipal.cnBiblioteca, adOpenKeyset, adLockOptimistic,

adCmdTable

rsVendaDet.Open "Vendas_Detalhes", mdiPrincipal.cnBiblioteca, adOpenKeyset,

adLockOptimistic, adCmdTable

If rsVenda.RecordCount = 0 Then

rsVenda.AddNew

Page 188: Curso Visual Basic (Págs.222)

188

Vcodigo = 1

lblVenda.Caption = Format(Vcodigo, "00000")

Else

rsVenda.MoveLast

Vcodigo = rsVenda("Cod_Vend")

Vcodigo = Vcodigo + 1

rsVenda.AddNew

lblVenda.Caption = Format(Vcodigo, "00000")

End If

With fgItem

.ColWidth(0) = 800

.ColWidth(1) = 2000

.ColWidth(2) = 3500

.ColWidth(3) = 1000

.ColWidth(4) = 2000

.ColWidth(5) = 1500

.Rows = 1

.TextMatrix(0, 0) = "Item"

.TextMatrix(0, 1) = "Código do Produto"

.TextMatrix(0, 2) = "Descrição"

.TextMatrix(0, 3) = "Quantidade"

.TextMatrix(0, 4) = "Preço Unitário"

.TextMatrix(0, 5) = "Subtotal"

End With

VProduto = "Select * from Produtos"

Set rsProduto = mdiPrincipal.cnBiblioteca.Execute(VProduto)

Do While Not rsProduto.EOF

cboDescricao.AddItem rsProduto("Nome_Pro")

rsProduto.MoveNext

Loop

Page 189: Curso Visual Basic (Págs.222)

189

VCliente = "Select * from Clientes"

Set rsCliente = mdiPrincipal.cnBiblioteca.Execute(VCliente)

Do While Not rsCliente.EOF

cboCliente.AddItem rsCliente("Nome_Cli")

rsCliente.MoveNext

Loop

End Sub

Private Sub Form_Unload(Cancel As Integer)

If rsVenda.EditMode Then

rsVenda.CancelUpdate

End If

rsVenda.Close

rsVendaDet.Close

End Sub

Private Sub txtCodCli_KeyPress(KeyAscii As Integer)

If (KeyAscii < Asc("0") Or KeyAscii > Asc("9") And KeyAscii <> 8) Then

KeyAscii = 0

End If

End Sub

Private Sub txtCodCli_LostFocus()

If txtCodCli.Text = Empty Then

Exit Sub

Else

Dim VConCodigo As Integer

VConCodigo = CInt(txtCodCli.Text)

Vfrase = "Select * from Clientes Where Cod_Cli=" & VConCodigo

Set rsConClientes = mdiPrincipal.cnBiblioteca.Execute(Vfrase)

If rsConClientes.BOF = True And rsConClientes.EOF = True Then

'cliente não cadastrado

Page 190: Curso Visual Basic (Págs.222)

190

MsgBox "Cliente Não Encontrado!", vbInformation, "Atenção"

txtCodCli.Text = ""

txtCodCli.SetFocus

'fecha a conexão

rsConClientes.Close

Exit Sub

End If

cboCliente.Text = rsConClientes("Nome_Cli")

End If

End Sub

Private Sub txtCodPro_KeyPress(KeyAscii As Integer)

If (KeyAscii < Asc("0") Or KeyAscii > Asc("9") And KeyAscii <> 8) Then

KeyAscii = 0

End If

End Sub

Private Sub txtCodPro_LostFocus()

If txtCodPro.Text = Empty Then

Exit Sub

Else

Dim VConCodigo As Integer

VConCodigo = CInt(txtCodPro.Text)

Vfrase = "Select * from Produtos Where Cod_Pro=" & VConCodigo

Set rsConProdutos = mdiPrincipal.cnBiblioteca.Execute(Vfrase)

If rsConProdutos.BOF = True And rsConProdutos.EOF = True Then

'cliente não cadastrado

MsgBox "Produto Não Encontrado!", vbInformation, "Atenção"

txtCodPro.Text = ""

txtCodPro.SetFocus

'fecha a conexão

rsConProdutos.Close

Page 191: Curso Visual Basic (Págs.222)

191

If cmdCalcular.Enabled = False Then

cmdCalcular.Enabled = False

cmdCancelar.Enabled = False

cmdFechar.Enabled = False

End If

Exit Sub

End If

cboDescricao.Text = rsConProdutos("Nome_Pro")

txtPrecoUni.Text = Format(rsConProdutos("Valor_Pro"), "currency")

cmdCalcular.Enabled = True

cmdCancelar.Enabled = True

cmdFechar.Enabled = False

End If

End Sub

Private Sub cboDescricao_LostFocus()

If cboDescricao.Text = Empty Then

Exit Sub

Else

Dim VConNome As String

VConNome = Chr(39) & CStr(cboDescricao.Text) & Chr(39)

Vfrase = "Select * from Produtos Where Nome_Pro=" & VConNome

Set rsConProdutos = mdiPrincipal.cnBiblioteca.Execute(Vfrase)

If rsConProdutos.BOF = True And rsConProdutos.EOF = True Then

'cliente não cadastrado

MsgBox "Produto Não Encontrado!", vbInformation, "Atenção"

cboDescricao.Text = ""

cboDescricao.SetFocus

'fecha a conexão

rsConProdutos.Close

If cmdCalcular.Enabled = False Then

cmdCalcular.Enabled = False

Page 192: Curso Visual Basic (Págs.222)

192

cmdCancelar.Enabled = False

cmdFechar.Enabled = False

End If

Exit Sub

End If

txtCodPro.Text = rsConProdutos("Cod_Pro")

txtPrecoUni.Text = Format(rsConProdutos("Valor_Pro"), "Currency")

cmdCalcular.Enabled = True

cmdCancelar.Enabled = True

cmdFechar.Enabled = False

End If

End Sub

Private Sub txtDesc_Click()

txtJuros.Text = 0

txtJuros.Enabled = False

End Sub

Private Sub txtDesc_KeyPress(KeyAscii As Integer)

If (KeyAscii < Asc("0") Or KeyAscii > Asc("9") And KeyAscii <> 8) Then

KeyAscii = 0

End If

End Sub

Private Sub txtDesc_LostFocus()

If txtDesc.Text = Empty Then

txtDesc.Text = 0

ElseIf txtDesc.Text > 0 Then

txtJuros.Enabled = False

End If

If txtDesc.Text = 0 Then

txtJuros.Enabled = True

Page 193: Curso Visual Basic (Págs.222)

193

End If

End Sub

Private Sub txtJuros_Click()

txtDesc.Text = 0

txtDesc.Enabled = False

End Sub

Private Sub txtJuros_KeyPress(KeyAscii As Integer)

If (KeyAscii < Asc("0") Or KeyAscii > Asc("9") And KeyAscii <> 8) Then

KeyAscii = 0

End If

End Sub

Private Sub txtJuros_LostFocus()

If txtJuros.Text = Empty Then

txtJuros.Text = 0

ElseIf txtJuros.Text > 0 Then

txtDesc.Enabled = False

End If

If txtJuros.Text = 0 Then

txtDesc.Enabled = True

End If

End Sub

Page 194: Curso Visual Basic (Págs.222)

194

Dim S As Object

Private Sub Command2_Click()

'Dim S As Object

Dim str As String

If Not IsNumeric(Valor.Text) Then

MsgBox "Valor não aceito"

Valor.SetFocus

Exit Sub

End If

If Not IsDate(Data.Text) Then

MsgBox "Data não aceita"

Data.SetFocus

Page 195: Curso Visual Basic (Págs.222)

195

Exit Sub

End If

For M = 1 To Len(Valor.Text)

If Mid$(Valor.Text, M, 1) = "," Then

str = str + "."

Else

str = str & Mid$(Valor.Text, M, 1)

End If

Next M

'Set S = CreateObject("Word.Document")

S.Application.Visible = True

With S.Application.Selection

.EndKey Unit:=6

.Tables.Add range:=.range, NumRows:=1, NumColumns:=2,

DefaultTableBehavior:=1, AutoFitBehavior:=0

.Tables(1).Style = "Tabela com grade"

.Tables(1).ApplyStyleHeadingRows = True

.Tables(1).ApplyStyleLastRow = True

.Tables(1).ApplyStyleFirstColumn = True

.Tables(1).ApplyStyleLastColumn = True

.Style = S.Styles("Título 1")

.Borders(-1).LineStyle = 0

.Borders(-2).LineStyle = 0

.Borders(-3).LineStyle = 0

.Borders(-4).LineStyle = 0

.Borders(-4).LineStyle = 0

.Borders(-8).LineStyle = 0

.TypeText Text:="Recibo Nº: " & IEMOS.Text

.MoveRight Unit:=12

.Borders(-1).LineStyle = 0

.Borders(-2).LineStyle = 0

.Borders(-3).LineStyle = 0

.Borders(-4).LineStyle = 0

Page 196: Curso Visual Basic (Págs.222)

196

.Borders(-4).LineStyle = 0

.Borders(-8).LineStyle = 0

.Style = S.Styles("Normal")

.TypeText Text:="Valor: " & Format$(Val(str), "currency")

.MoveRight Unit:=12

.Style = S.Styles("Normal")

'.TypeText Text:=IEMOS.Text

.MoveRight Unit:=1, Count:=2, Extend:=1

.Cells.merge

.MoveRight Unit:=12

.TypeText Text:="Cliente: " & Endereco.Text

.MoveRight Unit:=12

.TypeText Text:="A importância de " & Extenso(str, "Reais", "Real")

.MoveRight Unit:=12

.TypeText Text:="Referente: " & referente.Text

.MoveRight Unit:=12

.MoveRight Unit:=12

.TypeText Text:=Lugar.Text & ", " & Day(Data.Text) & " de " &

MonthName(Month(Data.Text)) & " de " & Year(Data.Text)

.MoveRight Unit:=12

.MoveRight Unit:=12

.Cells.Split NumRows:=1, NumColumns:=2, MergeBeforeSplit:=False

.MoveLeft Unit:=1, Count:=1

.TypeText Text:="Emitente: " & Emitente.Text

.MoveRight Unit:=12

.TypeText Text:="CNPJ: " & Cpf.Text

.MoveRight Unit:=12

.MoveRight Unit:=1, Count:=2, Extend:=1

.Cells.merge

.TypeText Text:="Assinatura _______________________________"

.MoveDown Unit:=5, Count:=1

.TypeParagraph

End With

Unload Me

Page 197: Curso Visual Basic (Págs.222)

197

frmTelaVenda.cmdNova.Enabled = True

End Sub

Private Sub Form_Load()

' Valor.Text = 0

Data.Text = Date

Set S = CreateObject("Word.Document")

IEMOS.Text = frmTelaVenda.lblVenda.Caption

Valor.Text = frmTelaVenda.lbltotal2.Caption

Valor2.Text = frmTelaVenda.lblTotal.Caption

Endereco.Text = frmTelaVenda.cboCliente.Text

End Sub

Private Sub valor_Change()

Dim vlr

For M = 1 To Len(Valor.Text)

If Mid$(Valor.Text, M, 1) = "," Then

vlr = vlr + "."

Else

vlr = vlr & Mid$(Valor.Text, M, 1)

End If

Next M

If Not IsNumeric(vlr) Then Exit Sub

Ext.Text = Extenso(Val(vlr), "Reais", "Real")

End Sub

Page 198: Curso Visual Basic (Págs.222)

198

Private rsAlteraSenha As New ADODB.Recordset

Private Vatual As New ADODB.Recordset

Private Sub cmdCancelar_Click()

Unload Me

End Sub

Private Sub cmdOK_Click()

Dim vcriterio, VSenhaAtual As String

If txtAtual.Text = Empty Then

MsgBox "Digite a Senha Atual!", vbOKOnly + vbInformation, "Atenção"

txtAtual.SetFocus

Exit Sub

End If

If txtNova.Text = Empty Then

MsgBox "Digite a Nova Senha!", vbOKOnly + vbInformation, "Atenção"

txtNova.SetFocus

Exit Sub

End If

If txtConfirmar.Text = Empty Then

MsgBox "Digite a Confirmação da Senha!", vbOKOnly + vbInformation, "Atenção"

txtConfirmar.SetFocus

Exit Sub

End If

If Len(txtNova.Text) < 7 Then

MsgBox "Digite uma Nova Senha com no mínimo 7 caracteres!", vbOKOnly +

vbCritical, "Atenção"

txtNova.Text = Empty

txtConfirmar.Text = Empty

Page 199: Curso Visual Basic (Págs.222)

199

txtNova.SetFocus

Exit Sub

End If

If Not (txtNova.Text = txtConfirmar.Text) Then

MsgBox "Senha de Confirmação incorreta!", vbOKOnly + vbCritical, "Atenção"

txtConfirmar.Text = Empty

txtConfirmar.SetFocus

Exit Sub

End If

VSenhaAtual = Chr(39) & txtAtual.Text & Chr(39)

Vatual.Open "Select * from User_Sistema where Senha_Sist=" & VSenhaAtual,

mdiPrincipal.cnBiblioteca, adOpenKeyset, adLockPessimistic, adCmdText

If Vatual.RecordCount = 0 Then

MsgBox "Senha Atual incorreta!", vbOKOnly + vbCritical, "Atenção"

txtAtual.Text = Empty

txtAtual.SetFocus

Vatual.Close

Exit Sub

End If

vcriterio = Chr(39) & frmLogon.Vnome & Chr(39)

rsAlteraSenha.Open "Select * from User_Sistema where Usuario_Sist=" & vcriterio,

mdiPrincipal.cnBiblioteca, adOpenKeyset, adLockPessimistic, adCmdText

rsAlteraSenha("Senha_Sist") = txtNova.Text

rsAlteraSenha.Update

MsgBox "Senha Alterada com Sucesso!", vbOKOnly + vbInformation, "OK"

Unload Me

End Sub

Page 200: Curso Visual Basic (Págs.222)

200

� Altera o plano de fundo do programa, porém não salva definitivamente, pois ao

efetuar o logoff do sistema a tela a ser carregada novamente será a padrão, assim,

não descaracterizando o programa.

Option Explicit

Private Sub btnAplica_Click()

'ArquivoEscolhido é o caminho completo do arquivo selecionado

mdiPrincipal.Image1.Picture = LoadPicture(ArquivoEscolhido)

If opt(0).Value = True Then mdiPrincipal.CentraImagem

If opt(1).Value = True Then mdiPrincipal.EstendeImagem

If opt(2).Value = True Then mdiPrincipal.LadoaLadoImagem

If opt(3).Value = True Then mdiPrincipal.NormalImagem

End Sub

Private Sub btnCancela_Click()

Unload Me

End Sub

Private Sub btnOk_Click()

'ArquivoEscolhido é o caminho completo do arquivo selecionado

mdiPrincipal.Image1.Picture = LoadPicture(ArquivoEscolhido)

Page 201: Curso Visual Basic (Págs.222)

201

If opt(0).Value = True Then mdiPrincipal.CentraImagem

If opt(1).Value = True Then mdiPrincipal.EstendeImagem

If opt(2).Value = True Then mdiPrincipal.LadoaLadoImagem

If opt(3).Value = True Then mdiPrincipal.NormalImagem

Unload Me

End Sub

Private Sub Combo1_Click()

Select Case Combo1.Text

Case "Arquivos do Bitmap"

File1.Pattern = "*.bmp"

Case "Arquivos JPEG"

File1.Pattern = "*.Jpg;*.Jpg;"

Case "Arquivos GIF"

File1.Pattern = "*.gif"

Case "Arquivos de Imagem"

File1.Pattern = "*.bmp;*.Jpg;*.Jpeg;*.gif"

End Select

End Sub

Private Sub Dir1_Change()

Dim I As Integer

File1.Path = Dir1.Path

End Sub

Private Sub Drive1_Change()

Dir1.Path = Drive1.Drive

End Sub

Private Sub File1_Click()

Image1.Picture = LoadPicture(Dir1 & "\" & File1.List(File1.ListIndex))

Call Redimencion(Image1, Picture1.Width, Picture1.Height)

ArquivoEscolhido = Dir1 & "\" & File1.List(File1.ListIndex)

End Sub

Page 202: Curso Visual Basic (Págs.222)

202

Private Sub Form_Load()

Combo1.AddItem "Arquivos de Imagem"

Combo1.AddItem "Arquivos do Bitmap"

Combo1.AddItem "Arquivos JPG e JPEG"

Combo1.AddItem "Arquivos GIF"

Combo1.ListIndex = 0

Dir1.Path = "C:\"

Image1.Picture = LoadPicture(ArquivoEscolhido)

Call Redimencion(Image1, Picture1.Width, Picture1.Height)

opt(OptionFundo).Value = True

End Sub

Sub Redimencion(img As Image, Optional largura As Double, Optional altura As

Double)

Dim vFator As Double

img.Stretch = False

vFator = largura / img.Width

img.Stretch = True

If img.Height * vFator > altura Then

img.Stretch = False

vFator = altura / img.Height

img.Stretch = True

ElseIf img.Width * vFator > largura Then

img.Stretch = False

vFator = largura / img.Width

img.Stretch = True

End If

img.Height = img.Height * vFator

img.Width = img.Width * vFator

img.Left = (largura / 2) - (img.Width / 2)

img.Top = (altura / 2) - (img.Height / 2)

End Sub

Page 203: Curso Visual Basic (Págs.222)

203

Private Sub opt_Click(Index As Integer)

Select Case Index

Case 0

OptionFundo = 0

Case 1

OptionFundo = 1

Case 2

OptionFundo = 2

Case 3

OptionFundo = 3

End Select

Image1.Picture = LoadPicture(ArquivoEscolhido)

Call Redimencion(Image1, Picture1.Width, Picture1.Height)

End Sub

Page 204: Curso Visual Basic (Págs.222)

204

Private Sub cmdOK_Click()

Unload Me

End Sub

Page 205: Curso Visual Basic (Págs.222)

205

Private rsUsuarios As New ADODB.Recordset

Private Sub cmdIncluir_Click()

Dim Vcodigo As Integer

If rsUsuarios.RecordCount = 0 Then

rsUsuarios.AddNew

Vcodigo = 1

txtCodUsuario.Text = Format(Vcodigo, "0000")

Else

rsUsuarios.MoveLast

Vcodigo = rsUsuarios("CodUser_Sist")

Vcodigo = Vcodigo + 1

rsUsuarios.AddNew

LimpaRegistro

txtCodUsuario.Text = Format(Vcodigo, "0000")

End If

HabilitaCampos

txtUsuario.SetFocus

Page 206: Curso Visual Basic (Págs.222)

206

cmdCancelar.Enabled = True

cmdFechar.Enabled = False

cmdIncluir.Enabled = False

cmdGravar.Enabled = True

cmdPrimeiro.Enabled = False

cmdAnterior.Enabled = False

cmdProximo.Enabled = False

cmdUltimo.Enabled = False

cmdExcluir.Enabled = False

cmdAlterar.Enabled = False

End Sub

Private Sub cmdAlterar_Click()

HabilitaCampos

txtUsuario.SetFocus

cmdIncluir.Enabled = False

cmdFechar.Enabled = False

cmdCancelar.Enabled = True

cmdAlterar.Enabled = False

cmdGravar.Enabled = True

cmdExcluir.Enabled = False

cmdPrimeiro.Enabled = False

cmdAnterior.Enabled = False

cmdProximo.Enabled = False

cmdUltimo.Enabled = False

End Sub

Private Sub cmdAnterior_Click()

rsUsuarios.MovePrevious

If rsUsuarios.BOF Then

rsUsuarios.MoveFirst

End If

MostraRegistro

End Sub

Page 207: Curso Visual Basic (Págs.222)

207

Private Sub cmdCancelar_Click()

rsUsuarios.CancelUpdate

If rsUsuarios.RecordCount = 0 Then

LimpaRegistro

cmdExcluir.Enabled = False

cmdAlterar.Enabled = False

cmdPrimeiro.Enabled = False

cmdAnterior.Enabled = False

cmdProximo.Enabled = False

cmdUltimo.Enabled = False

cmdIncluir.Enabled = True

cmdFechar.Enabled = True

cmdCancelar.Enabled = False

cmdGravar.Enabled = False

Else

MostraRegistro

cmdGravar.Enabled = False

cmdCancelar.Enabled = False

cmdIncluir.Enabled = True

cmdFechar.Enabled = True

cmdPrimeiro.Enabled = True

cmdAnterior.Enabled = True

cmdProximo.Enabled = True

cmdUltimo.Enabled = True

cmdAlterar.Enabled = True

cmdExcluir.Enabled = True

End If

DesabilitaCampos

End Sub

Private Sub cmdExcluir_Click()

If MsgBox("Deseja excluir o Usuário?", vbYesNo + vbQuestion, "Atenção") = vbYes

Then

Page 208: Curso Visual Basic (Págs.222)

208

rsUsuarios.Delete

If rsUsuarios.RecordCount = 0 Then

LimpaRegistro

cmdExcluir.Enabled = False

cmdAlterar.Enabled = False

cmdPrimeiro.Enabled = False

cmdAnterior.Enabled = False

cmdProximo.Enabled = False

cmdUltimo.Enabled = False

Else

rsUsuarios.MoveNext

If rsUsuarios.EOF Then

rsUsuarios.MoveLast

End If

MostraRegistro

End If

End If

End Sub

Private Sub cmdFechar_Click()

Unload Me

End Sub

Private Sub cmdGravar_Click()

If txtUsuario.Text = "" Then

MsgBox "O USUÁRIO é obrigatório!", vbOKOnly + vbInformation, "Aviso"

txtUsuario.SetFocus

Exit Sub

End If

If txtSenha.Text = "" Then

MsgBox "A SENHA é obrigatório!", vbOKOnly + vbInformation, "Aviso"

txtSenha.SetFocus

Page 209: Curso Visual Basic (Págs.222)

209

Exit Sub

End If

If txtNivel.Text = "" Then

MsgBox "O NIVEL é obrigatório!", vbOKOnly + vbInformation, "Aviso"

txtNivel.SetFocus

Exit Sub

End If

rsUsuarios("CodUser_Sist") = txtCodUsuario.Text

rsUsuarios("Usuario_Sist") = txtUsuario.Text

rsUsuarios("Senha_Sist") = txtSenha.Text

rsUsuarios("Nivel_Sist") = txtNivel.Text

rsUsuarios.Update

DesabilitaCampos

MsgBox "Dados do Usuário salvos com sucesso!!!", vbOKOnly + vbInformation,

"Aviso"

cmdCancelar.Enabled = False

cmdIncluir.Enabled = True

cmdFechar.Enabled = True

cmdGravar.Enabled = False

cmdPrimeiro.Enabled = True

cmdAnterior.Enabled = True

cmdProximo.Enabled = True

cmdUltimo.Enabled = True

cmdAlterar.Enabled = True

cmdExcluir.Enabled = True

End Sub

Private Sub cmdPrimeiro_Click()

rsUsuarios.MoveFirst

MostraRegistro

End Sub

Page 210: Curso Visual Basic (Págs.222)

210

Private Sub cmdProximo_Click()

rsUsuarios.MoveNext

If rsUsuarios.EOF Then

rsUsuarios.MoveLast

End If

MostraRegistro

End Sub

Private Sub cmdUltimo_Click()

rsUsuarios.MoveLast

MostraRegistro

End Sub

Private Sub Form_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then

SendKeys "{tab}"

End If

End Sub

Private Sub Form_Load()

rsUsuarios.Open "User_Sistema", mdiPrincipal.cnBiblioteca, adOpenKeyset,

adLockOptimistic, adCmdTable

If rsUsuarios.RecordCount > 0 Then

MostraRegistro

Else

cmdExcluir.Enabled = False

cmdAlterar.Enabled = False

cmdPrimeiro.Enabled = False

cmdAnterior.Enabled = False

cmdProximo.Enabled = False

cmdUltimo.Enabled = False

End If

Page 211: Curso Visual Basic (Págs.222)

211

DesabilitaCampos

End Sub

Private Sub Form_Unload(Cancel As Integer)

rsUsuarios.Close

End Sub

Private Sub DesabilitaCampos()

txtUsuario.Enabled = False

txtSenha.Enabled = False

txtNivel.Enabled = False

End Sub

Private Sub MostraRegistro()

If Not IsNull(rsUsuarios("CodUser_Sist")) Then

txtCodUsuario.Text = Format(rsUsuarios("CodUser_Sist"), "0000")

Else

txtCodUsuario.Text = Empty

End If

If Not IsNull(rsUsuarios("Usuario_Sist")) Then

txtUsuario.Text = rsUsuarios("Usuario_Sist")

Else

txtUsuario.Text = Empty

End If

If Not IsNull(rsUsuarios("Senha_Sist")) Then

txtSenha.Text = rsUsuarios("Senha_Sist")

Else

txtSenha.Text = Empty

End If

If Not IsNull(rsUsuarios("Nivel_Sist")) Then

txtNivel.Text = rsUsuarios("Nivel_Sist")

Else

Page 212: Curso Visual Basic (Págs.222)

212

txtNivel.Text = Empty

End If

End Sub

Private Sub HabilitaCampos()

txtUsuario.Enabled = True

txtSenha.Enabled = True

txtNivel.Enabled = True

End Sub

Private Sub LimpaRegistro()

txtCodUsuario.Text = ""

txtUsuario.Text = ""

txtSenha.Text = ""

txtNivel.Text = ""

End Sub

Private Sub txtNivel_KeyPress(KeyAscii As Integer)

KeyAscii = Asc(UCase(Chr(KeyAscii)))

If InStr("0123456789<>|\;,.?/[{}]+=§-_)(*&%$#@!*", Chr(KeyAscii)) <> 0 Then

KeyAscii = 0

End If

End Sub

Private Sub txtUsuario_KeyPress(KeyAscii As Integer)

KeyAscii = Asc(UCase(Chr(KeyAscii)))

If InStr("0123456789<>|\;,.?/[{}]+=§-_)(*&%$#@!*", Chr(KeyAscii)) <> 0 Then

KeyAscii = 0

End If

End Sub

Page 213: Curso Visual Basic (Págs.222)

213

Private Vfrase As String

Private rsConUsuarios As New ADODB.Recordset

Private Sub cboTipo_Click()

txtParametro.Text = ""

fgConsultaUser.Clear

With fgConsultaUser

.ColWidth(0) = 800

.ColWidth(1) = 3000

.ColWidth(2) = 800

.Rows = 1

.TextArray(0) = "Código"

.TextArray(1) = "Nome do Usuário"

.TextArray(2) = "Nivel"

End With

If cboTipo.Text = "Todos" Then

txtParametro.Enabled = False

Page 214: Curso Visual Basic (Págs.222)

214

Else

txtParametro.Enabled = True

End If

End Sub

Private Sub fgConsultaUser_DblClick()

If fgConsultaUser.Row = 0 Then

Exit Sub

End If

frmUserSistema.Show

frmUserSistema.Left = 4000

frmUserSistema.Top = 2000

End Sub

Private Sub fgConsultaUser_MouseMove(Button As Integer, Shift As Integer, x As

Single, y As Single)

If fgConsultaUser.Rows > 1 Then

If fgConsultaUser.Row <> fgConsultaUser.MouseRow And

fgConsultaUser.MouseRow > 0 Then

fgConsultaUser.Col = 0

fgConsultaUser.Row = fgConsultaUser.MouseRow

fgConsultaUser.ColSel = fgConsultaUser.Cols - 1

End If

End If

End Sub

Private Sub Form_Load()

Toolbar1.Left = 11055

With fgConsultaUser

.ColWidth(0) = 800

.ColWidth(1) = 3000

.ColWidth(2) = 800

Page 215: Curso Visual Basic (Págs.222)

215

.Rows = 1

.TextArray(0) = "Código"

.TextArray(1) = "Nome do Usuário"

.TextArray(2) = "Nivel"

End With

End Sub

Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)

If Button.Key = "Sair" Then

Unload Me

ElseIf Button.Key = "Pesquisar" Then

If cboTipo.Text = "Escolha o tipo de Consulta" Then

MsgBox "Escolha o Tipo de Consulta desejada", vbOKOnly + vbInformation,

"Atenção"

cboTipo.SetFocus

Exit Sub

End If

If cboTipo.Text = "Por Código" Then

If txtParametro.Text = "" Then

MsgBox "Entre com o parametro para realizar a consulta", vbOKOnly +

vbInformation, "Atenção"

txtParametro.SetFocus

Exit Sub

End If

If Not IsNumeric(txtParametro.Text) Then

MsgBox "Entre com um número para o código!", vbOKOnly + vbInformation,

"Atenção"

txtParametro.Text = ""

txtParametro.SetFocus

Exit Sub

End If

Page 216: Curso Visual Basic (Págs.222)

216

Dim VConCodigo As Integer

VConCodigo = CInt(txtParametro.Text)

fgConsultaUser.Clear

Vfrase = "Select * from User_Sistema Where CodUser_Sist=" & VConCodigo

Set rsConUsuarios = mdiPrincipal.cnBiblioteca.Execute(Vfrase)

EncheGrid

If rsConUsuarios.BOF = True And rsConUsuarios.EOF = True Then

'cliente não cadastrado

MsgBox "Usuário Não Encontrado!", vbInformation, "Atenção"

txtParametro.Text = ""

'fecha a conexão

rsConUsuarios.Close

End If

ElseIf cboTipo.Text = "Por Nome" Then

Dim VConNome As String

If txtParametro.Text = "" Then

MsgBox "Entre com o parametro para realizar a consulta", vbOKOnly +

vbInformation, "Atenção"

txtParametro.SetFocus

Exit Sub

End If

VConNome = Chr(39) & CStr(txtParametro.Text) & "'"

fgConsultaUser.Clear

Vfrase = "Select * from User_Sistema Where Usuario_Sist LIKE" & VConNome

Set rsConUsuarios = mdiPrincipal.cnBiblioteca.Execute(Vfrase)

EncheGrid

If rsConUsuarios.BOF = True And rsConUsuarios.EOF = True Then

'cliente não cadastrado

Page 217: Curso Visual Basic (Págs.222)

217

MsgBox "Usuário Não Encontrado!", vbInformation, "Atenção"

txtParametro.Text = ""

'fecha a conexão

rsConUsuarios.Close

End If

ElseIf cboTipo.Text = "Todos" Then

Vfrase = "Select * from User_Sistema order by Usuario_Sist"

Set rsConUsuarios = mdiPrincipal.cnBiblioteca.Execute(Vfrase)

' chama a funcao que preenche o grid

EncheGrid

If rsConUsuarios.BOF = True And rsConUsuarios.EOF = True Then

'cliente não cadastrado

MsgBox "Não há Usuário Cadastrado!", vbInformation, "Atenção"

txtParametro.Text = ""

'fecha a conexão

rsConUsuarios.Close

End If

End If

ElseIf Button.Key = "Nova" Then

fgConsultaUser.Clear

cboTipo.Text = "Escolha o tipo de Consulta"

txtParametro.Text = ""

With fgConsultaUser

.ColWidth(0) = 800

.ColWidth(1) = 3000

.ColWidth(2) = 800

.Rows = 1

.TextArray(0) = "Código"

.TextArray(1) = "Nome do Usuário"

.TextArray(2) = "Nivel"

End With

Page 218: Curso Visual Basic (Págs.222)

218

cboTipo.SetFocus

End If

End Sub

Private Sub EncheGrid()

' forma o cabeçalho do fexgrid

With fgConsultaUser

.ColWidth(0) = 800

.ColWidth(1) = 3000

.ColWidth(2) = 800

.Rows = 1

.TextArray(0) = "Código"

.TextArray(1) = "Nome do Usuário"

.TextArray(2) = "Nivel"

End With

Do While Not rsConUsuarios.EOF

fgConsultaUser.AddItem rsConUsuarios("CodUser_Sist") & Chr(9) &

rsConUsuarios("Usuario_Sist") & Chr(9) & rsConUsuarios("Nivel_Sist")

rsConUsuarios.MoveNext

Loop

End Sub

Private Sub txtParametro_KeyPress(KeyAscii As Integer)

If cboTipo.Text = "Por Código" Then

If (KeyAscii < Asc("0") Or KeyAscii > Asc("9") And KeyAscii <> 8) Then

KeyAscii = 0

End If

End If

If cboTipo.Text = "Por Nome" Then

If InStr("0123456789<>|\;,.?/[{}]+=§-_)(*&%$#@!*", Chr(KeyAscii)) <> 0 Then

Page 219: Curso Visual Basic (Págs.222)

219

KeyAscii = 0

End If

End If

End Sub

� Help File

Arquivo de ajuda aos usuários, onde contém todas as informações

necessárias para um bom desempenho perante o sistema.

Page 220: Curso Visual Basic (Págs.222)

220

Melhorias no Sistema.

Diante de tudo o que foi apresentado, todo e qualquer sistema deve ser

modelado aos poucos, após sua implantação passa ser um momento, de

diariamente levantar “falhas”, que de imediato deve ser corrigidas, porem o mais

importante, maneiras de se melhorar o programa, onde suprirá a necessidade da

instituição pela qual utiliza o sotfware desenvolvido.

Conforme se passa o tempo de sua utilização novas ferramentas serão

solicitadas em prol da agilidade e praticidade, segui a baixo melhorias já detectadas

pelo programador e que já estão em andamento medidas para prováveis soluções.

• Backup:

De acordo com o fluxo de informações, deve ser programado para se

fazer o backup dos dados.

A informação é o bem mais valioso de uma empresa, nelas estão o

“sangue que permite a empresa estar viva”.

• Relatórios:

Documento de grande importância, pois neles estarão implessos os

dados e informações para se dar continuidade no bom funcionamento da empresa,

“vivemos em um País capitalista e movido por números.”

• Contole de estoque:

Mantém o controle das mercadorias a serem vendidas de acordo com a

necessidade da demanda da loja, assim não deichando faltar as devidas

mercadorias, pois sua fonte de lucros vem das vendas.

• Consulta das Vendas:

Necessário para que possa ser emitido a 2º via do recibo, e possíveis

reclamações futuras, comprovante.

Page 221: Curso Visual Basic (Págs.222)

221

Conclusão

Dentre todas as fases que se tem até chegarmos no melhor, para que o

programa desenvolvido seja satisfatório e atenda toda necessidade, temos que

atentar e seguir da melhor maneira todas elas, tais como:

• Estudo;

• Análise;

• Projetos;

• Implementação;

• Simulação;

• Implantação;

• Operação e

• Manutenção.

Assim trabalhando em equipe, com Analista, Programador e Projetista.

Todo Sistema há falhas, isso consiste em detecta-los e corrigi-los tão

breve possível.

É de grande importância passar por todos esses métodos, assim

podemos adquirir experiências, pois conforme o tempo se passa pode-se ir

modelando as técnicas e métodos.

“O Diamante como outras pedras preciosas, são encontradas na sua forma

Bruta, mas basta apenas Lapidar, que veremos o brilho que encanta.”

Page 222: Curso Visual Basic (Págs.222)

222

Referência Bibliográfica

Significado de algumas palavras retiradas do dicionário:

DIC Michaelis Escolar – Versão 2.0 – Agosto de 2002

Editora Melhoramentos Ltda

Pesquisas realizadas e complementadas no site:

Wikipédia, a enciclopédia livre.

www.pt.wikipedia.org