sistema de loja em vb

Post on 12-Apr-2015

25 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Visual Basic

Autor: Marcelo de Oliveira Rodrigues

2

Software de gerenciamento

Nilted Modas_Moda Infanto Juvenil

Aluno: Marcelo de Oliveira Rodrigues

Colégio: EMEFEP “Prof. Virgulina Marcondes de Moura Fázzeri”

COTECA – APARECIDA/SP

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

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.

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.

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.

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.

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

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

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

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.

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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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)

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

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

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

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

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

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}"

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

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

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

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

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

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)))

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

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

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

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()

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

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

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)

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

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")

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)

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

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

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)))

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

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

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

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

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")

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

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

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

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

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

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

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 = ""

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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)

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 = ""

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

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

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

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()

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

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

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

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

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

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

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"

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

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

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

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"

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

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

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"

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

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

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)

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

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"

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

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"

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()

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"

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

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

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"

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

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

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

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

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

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

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")

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

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

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

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 = ""

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

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

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"

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

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

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

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

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

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

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

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)

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

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

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

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

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

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

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()

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

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

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

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

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

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)

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))

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

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)

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)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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)

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:"

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

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

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")

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

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

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

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, _

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

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

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

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

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

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

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

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"

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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)

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

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

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

204

Private Sub cmdOK_Click()

Unload Me

End Sub

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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.

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.

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.”

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

top related