Вы находитесь на странице: 1из 12

VB6 - Controle de Estoques com ADO - II

Se voc esta chegando agora dever ler a primeira parte do artigo- VB6 - Controle de Estoques com ADO - I onde iniciamos o projeto definindo as seguintestarefas :
y y y y

Definio Definio Definio Definio

dos objetos e linguagem a ser utilizada do Banco de dados , tabelas e estruturas especficas das classes : Clientes , Produtos , Pedidos e ItensPedidos das propriedades bsicas de cada classe

Nesta segunda parte vamos continuar definindo as funcionalidades de cada classe . Vamos definir os mtodos para cada classe de forma a permitir que nossas classes executem aes. Os mtodos fazem a sua classe funcionar. . At agora definimos apenas as variveis membros que tem a funo de armazenar os dados atravs dos procedimentos :

1. 2.

Property Let - que permitem aos usurios das classes atribuir e alterar as variveis membros Property Get - que permitem aos usurios das classes ler o contedo das variveis membros

Nota: lembre-se que as variveis membros so privadas e os procedimentos Get e Let so pblicos. Podemos implementar os mtodos como funes ou Subrotinas(Subs) , e , voc j deve estar cansado de saber que uma funo poder retornar um valor. Por exemplo o mtodo OpenDataBase da DAO abre um banco de dados e retorna um objeto DataBase. Assim para criar os mtodos voc deve pensar em quais aes sua classe vai precisar executar . Vamos comear pela classe Clientes. Quais as aes que esta classe precisa executar para se tornar funcional ? Para no complicar muito vamos nos ater somente a as aes bsicas. Veja abaixo se voc concorda com as aes que eu enumerei para a classe clientes :

1. Incluir - incluir um cliente no


banco de dados banco de dados de um cliente

2. Excluir - excluir um cliente do concordar , eu no vou brigar por causa disto. 3. Atualizar - atualizar os dados Fique a vontade para definir os seus prprios 4. Localizar - localizar um
determinado cliente mtodos.

E ento ? concorda comigo ? Se voc no

Agora ficou fcil , vamos criar os quatro mtodos para a classe clientes: Vamos comear com o mtodo Incluir. O mtodo Incluir ser definido como uma funo que ir retornar um valor boleano : Verdadeiro ou Falso. Vamos abrir o recordset rsClientes e gravar no banco de dados as propriedades definidas para cada campo da tabela clientes.

No m principal do VB na op o Tools s lecione A dd rocedure.... A seguir preenc a a caixa de dilogo para a fun o Incluir conforme ao lado:

Os mtodos da classe Clientes


Veja como ficou o c digo do mtodo Incluir : Public Func ion Incluir() As Boolean On Error GoTo trata_erro_incluir Set rsclientes = New ADODB.Recordset rsclientes.Open "Clientes", oConexao, adOpenKeyset, adLockPessimistic ic

1. Open - abrir o recordset rsclientes.AddNew 2. Addnew - incluir um novo registro rsclientes("NomeCliente") = sNome 3. Update - atualizar a incluso rsclientes("EnderecoCliente") = sEndereco 4. Close - fechar o recorset rsclientes("CidadeCliente") = sCidade rsclientes("EstadoCliente") = sEstado Poderia ter usado a instruo SQL - Insert rsclientes("CepCliente") = sCep Into - cuja sintaxe : rsclientes("TelefoneCliente") = sTelefone rsclientes("CGCCliente") = sCgcCic INSERT INTO rsclientes("InscricaoCliente") = sInscricao NomedaTabela(CAMPO1,CAMPO2,...) rsclientes("EmailCliente") = sEmail VALUES(VALOR1,VALOR2,..) rsclientes("Ativo") = bAtivo rsclientes.Update Na abertura do recordset Clientes usamos rsclientes.Close usando os seguintes argumentos:

Incluir = True Exit Sub trata_erro_incluir: MsgBox " Ocorreu um erro durante a tentativa de inclus o de cliente " & vbcrlf & _ CrLf & _ " Erro nmero : " & Err.Number & vbCrLf & _ " Detalhes : " & Err.Description Incluir = False End Function y y adO enKeySet - cursor adLock essimistic- modo de bloqeio

Para maiores detalhes leia o artigo : Trabalhando com Recordsets - Alterando e Retornando dados. Obs: falaremos sobre a variveloConexao mais a frente.

Por questo de simplicidade eu usei os seguintes m todos do objeto Recordset:

Agora o c digo do mtodo Excluir da classe Clientes : Public Function Excluir(codigo As Long) As Boolean On Error GoTo trata_erro_excluir Dim strSQL As String Set rsclientes = New ADODB.Recordset strSQL = "SELECT * FROM Clientes WHERE codigoCliente = " & codigo rsclientes.Open strSQL, oConexao, adOpenKeyset, adLockPessimistic rsclientes.Delete rsclientes.Close Excluir = True Exit Sub trata_erro_excluir: MsgBox " Ocorreu um erro durante a tentativa de excluso de cliente para o codigo : " & codigo & vbCrLf & _ " Erro nmero : " & Err.Number & vbCrLf & _ " Detalhes : " & Err.Description Excluir = False End Function Agora o c digo do mtodo atualizar : Public Function Atualizar(codigo As Long) As Boolean On Error GoTo trata_erro_atualizar Dim strSQL As String Set rsclientes = New ADODB.Recordset strSQL = "SELECT * FROM Clientes WHERE codigoCliente = " & codigo rsclientes.Open strSQL, oConexao, adOpenKeyset, adLockPessimistic rsclientes("NomeCliente") = sNome rsclientes("EnderecoCliente") = sEndereco rsclientes("CidadeCliente") = sCidade rsclientes("EstadoCliente") = sEstado rsclientes("CepCliente") = sCep rsclientes("TelefoneCliente") = sTelefone rsclientes("CGCCliente") = sCgcCic rsclientes("InscricaoCliente") = sInscricao rsclientes("EmailCliente") = sEmail rsclientes("Ativo") = bAtivo rsclientes.Update rsclientes.Close Atualizar = True Exit Sub

 

trata_erro_atualizar: MsgBox " Ocorreu um erro durante a tentativa de excluso de cliente para o codigo : " & codigo & vbCrLf & _ " Erro nmero : " & Err.Number & vbCrLf & _ " Detalhes : " & Err.Description Atualizar = False End Function Finalmente o mtodo localizar da classe cliente : Public Function Localizar(codigo As Long) As Boolean On Error GoTo trata_erro_localizar Dim strSQL As String Set rsclientes = New ADODB.Recordset strSQL = "SELECT * FROM Clientes WHERE codigoCliente = " & codigo rsclientes.Open strSQL, oConexao, adOpenKeyset, adLockPessimistic sNome = rsclientes("NomeCliente") sEndereco = rsclientes("EnderecoCliente") sCidade = rsclientes("CidadeCliente") sEstado = rsclientes("EstadoCliente") sCep = rsclientes("CepCliente") sTelefone = rsclientes("TelefoneCliente") sCgcCic = rsclientes("CGCCliente") sInscricao = rsclientes("InscricaoCliente") sEmail = rsclientes("EmailCliente") bAtivo = rsclientes("Ativo") rsclientes.Close Localizar = True Exit Sub trata_erro_localizar: MsgBox " Ocorreu um erro durante a tentativa de localizar o cliente para o codigo : " & codigo & vbCrLf & _ " Erro nmero : " & Err.Number & vbCrLf & _ " Detalhes : " & Err.Description Localizar = False

End Function

Vamos adotar os mesmos procedimentos e criar os mtodos da classe Produtos. Vamos trabalhar com os mtodos :

Os mtodos da Classe

rodutos

1. 2. 3. 4. 5.

Incluir Excluir Atualizar Localizar atualizarEstoque

1- O c digo do mtodo Incluir da classe Produtos Public Function Incluir() As Boolean On Error GoTo trata_erro_incluir Set rsprodutos = New ADODB.Recordset rsprodutos.Open "Produtos", oConexao, adOpenKeyset, adLockPessimistic rsprodutos.AddNew rsprodutos("NomeProduto") = sNomeProduto rsprodutos("QuantidadeProduto") = sgnQuantidadeProduto rsprodutos("AliquotaProduto") = sgnAliquotaProduto rsprodutos("EstoqueMinimo") = sgnEstoqueMinimo rsprodutos("EstoqueMaximo") = sgnEstoqueMaximo rsprodutos("PrecoUnitario") = curPrecoUnitario rsprodutos("Ativo") = bAtivo rsprodutos.Update rsprodutos.Close Incluir = True Exit Sub trata_erro_incluir: MsgBox " Ocorreu um erro durante a tentativa de incluso do Produto " & vbCrLf & _ " Erro nmero : " & Err.Number & vbCrLf & _ " Detalhes : " & Err.Description Incluir = False End Function 2- O mtodo excluir da classe Produtos Public Function Excluir(codigo As Long) As Boolean On Error GoTo trata_erro_excluir Dim strSQL As String Set rsprodutos = New ADODB.Recordset strSQL = "SELECT * FROM Produtos WHERE codigoProduto = " & codigo rsprodutos.Open strSQL, oConexao, adOpenKeyset, adLockPessimistic rsprodutos.Delete rsprodutos.Close Excluir = True

Exit Sub trata_erro_excluir: MsgBox " Ocorreu um erro durante a tentativa de excluso do produto para o codigo : " & codigo & vbCrLf & _ " Erro nmero : " & Err.Number & vbCrLf & _ " Detalhes : " & Err.Description Excluir = False End Function 3- O mtodo Localizar da classe Produtos Public Function Localizar(codigo As Long) As Boolean On Error GoTo trata_erro_localizar Dim strSQL As String Set rsprodutos = New ADODB.Recordset strSQL = "SELECT * FROM Produtos WHERE codigoProduto = " & codigo rsprodutos.Open strSQL, oConexao, adOpenKeyset, adLockPessimistic sNomeProduto = rsprodutos("NomeProduto") sgnQuantidadeProduto = rsprodutos("QuantidadeProduto") sgnAliquotaProduto = rsprodutos("AliquotaProduto") sgnEstoqueMinimo = rsprodutos("EstoqueMinimo") sgnEstoqueMaximo = rsprodutos("EstoqueMaximo") curPrecoUnitario = rsprodutos("PrecoUnitario") bAtivo = rsprodutos("Ativo") Localizar = True Exit Sub trata_erro_localizar: MsgBox " Ocorreu um erro durante a tentativa de localizar o produto para o codigo : " & codigo & vbCrLf & _ " Erro nmero : " & Err.Number & vbCrLf & _ " Detalhes : " & Err.Description Localizar = False End Function 4- O mtodo Atualizar da classe Produtos. Public Function Atualizar(codigo As Long) As Boolean On Error GoTo trata_erro_atualizar Dim strSQL As String Set rsprodutos = New ADODB.Recordset

strSQL = "SELECT * FROM Produtos WHERE codigoProduto = " & codigo rsprodutos.Open strSQL, oConex ao, adOpenKeyset, adLockPessimistic rsprodutos("NomeProduto") = sNomeProduto rsprodutos("QuantidadeProduto") = sgnQuantidadeProduto rsprodutos("AliquotaProduto") = sgnAliquotaProduto rsprodutos("EstoqueMinimo") = sgnEstoqueMinimo rsprodutos("EstoqueMaximo") = sgnEstoqueMaximo rsprodutos("PrecoUnitario") = curPrecoUnitario rsprodutos("Ativo") = bAtivo rsprodutos.Update rsprodutos.Close Atualizar = True Exit Sub trata_erro_atualizar: MsgBox " Ocorreu um erro durante a tentativa de atualizar o produto para o codigo : " & codigo & vbCrLf & _ " Erro nmero : " & Err.Number & vbCrLf & _ " Detalhes : " & Err.Description Atualizar = False End Function 5- O mtodo AtualizaEstoque da classe Produtos. Public Function AtualizarEstoque(codigo as Long, Produto As S tring, QuantidadeVendida As Single) As Boolean On Error GoTo trata_erro_atualizarEstoque Dim strSQL As String Set rsprodutos = New ADODB.Recordset strSQL = "SELECT * FROM Produtos WHERE codigoProduto = " & codigo rsprodutos.Open strSQL, oConexao, adOpen Keyset, adLockPessimistic rsprodutos("QuantidadeProduto") = rsprodutos("QuantidadeProduto") QuantidadeVendida rsprodutos.Update rsprodutos.Close AtualizarEstoque = True Exit Sub trata_erro_atualizarEstoque: MsgBox " Ocorreu um erro durante a tentativa de atualizar o estoque para o produto de codigo : " & codigo & vbCrLf & _ " Erro nmero : " & Err.Number & vbCrLf & _ " Detalhes : " & Err.Description

AtualizarEstoque = False End Function

Os mtodos da Classe Pedidos


Vamos adotar os mesmos procedimentos e criar os mtodos da classe Pedidos. Vamos trabalhar com os mtodos :

1. 2. 3.

Incluir Excluir Localizar

1- O c digo do mtodo Incluir da classe Pedidos: Public Function Incluir() As Boolean On Error GoTo trata_erro_incluir Set rspedidos = New ADODB.Recordset rspedidos.Open "Pedidos", oConexao, adOpenKeyset, adLockPessimistic rspedidos.AddNew rspedidos("DataPedido") = datDataPedido rspedidos("NumeroNotaFiscal") = sgnNumeroNotaFiscal rspedidos("CodigoCliente") = lngCodigoCliente rspedidos("PrecoTotal") = curPrecoTotal rspedidos("Frete") = curFrete rspedidos("Ativo") = bAtivo rspedidos.Update rspedidos.Close Incluir = True Exit Sub trata_erro_incluir: MsgBox " Ocorreu um erro durante a tentativa de incluso do Pedido " & vbCrLf & _ " Erro nmero : " & Err.Number & vbCrLf & _ " Detalhes : " & Err.Description Incluir = False End Function 2- O mtodo Localizar da classe Pedidos: Public Function Localizar(codigo As Long) As Boolean On Error GoTo trata_erro_localizar Dim strSQL As String Set rspedidos = New ADODB.Recordset

strSQL = "SELECT * FROM pedidos WHERE codigoPedido = " & codigo rspedidos.Open strSQL, oConexao, adOpenKeyset, adLockPessimistic datDataPedido = rspedidos("DataPedido") sgnNumeroNotaFiscal = rspedidos("NumeroNotaFiscal") sgnCodigoCliente = rspedidos("CodigoCliente") curPrecoTotal = rspedidos("PrecoTotal") curFrete = rspedidos("Frete") bAtivo = rspedidos("Ativo") Localizar = True Exit Sub trata_erro_localizar: MsgBox " Ocorreu um erro durante a tentativa de localizar o pedido para o codigo : " & codigo & vbCrLf & _ " Erro nmero : " & Err.Number & vbCrLf & _ " Detalhes : " & Err.Description Localizar = False End Function 3- Mtodo Excluir da classe Pedidos. Public Function Excluir(codigo As Long) As Boolean On Error GoTo trata_erro_excluir Dim strSQL As String Set rspedidos = New ADODB.Recordset strSQL = "SELECT * FROM pedidos WHERE codigoProduto = " & codigo rspedidos.Open strSQL, oConexao, adOpenKeyset, adLockPessimistic rspedidos.Delete rspedidos.Close Excluir = True Exit Sub trata_erro_excluir: MsgBox " Ocorreu um erro durante a tentativa de excluso do pedido para o codigo : " & codigo & vbCrLf & _ " Erro nmero : " & Err.Number & vbCrLf & _ " Detalhes : " & Err.Description Excluir = False End Function

Os mtodos da Classe ItensPedidos

Vamos adotar os mesmos procedimentos e criar os mtodos da classe ItensPedidos. Vamos trabalhar com os mtodos :

1. 2. 3.

Incluir Excluir ExibirItens

1- O c digo do mtodo Incluir da classe Pedidos: Public Function Incluir() As Boolean On Error GoTo trata_erro_incluir Set rspedidos = New ADODB.Recordset rspedidos.Open "Pedidos", oConexao, adOpenKeyset, adLockPessimistic rspedidos.AddNew rspedidos("DataPedido") = datDataPedido rspedidos("NumeroNotaFiscal") = sgnNumeroNotaFiscal rspedidos("CodigoCliente") = lngCodigoCliente rspedidos("PrecoTotal") = curPrecoTotal rspedidos("Frete") = curFrete rspedidos("Ativo") = bAtivo rspedidos.Update rspedidos.Close Incluir = True Exit Sub trata_erro_incluir: MsgBox " Ocorreu um erro durante a tentativa de incluso do Pedido " & vbCrLf & _ " Erro nmero : " & Err.Number & vbCrLf & _ " Detalhes : " & Err.Description Incluir = False End Function 2- O mtodo Excluir da classe itensPedidos : Public Function Excluir(codigo As Long) As Boolean On Error GoTo trata_erro_excluir Dim strSQL As String Set rsItensPedidos = New ADODB.Recordset strSQL = "SELECT * FROM ItensPedidos WHERE CodigoItemPedido = " & codigo rsItensPedidos.Open strSQL, oConexao, adOpenKeyset, adLockPessimistic rsItensPedidos.Delete rsItensPedidos.Close Excluir = True

Exit Sub trata_erro_excluir: MsgBox " Ocorreu um erro durante a tentativa de excluso do item de pedido para o codigo : " & codigo & vbCrLf & _ " Erro nmero : " & Err.Number & vbCrLf & _ " Detalhes : " & Err.Description Excluir = False End Function 3 - O mtodo ExibirItens da classe ItensPedidos: Public Function ExibirItens(codigo As Long, itens As Collection) As Boolean On Error GoTo trata_erro_exibiritens Dim strSQL As String Set rsItensPedidos = New ADODB.Recordset strSQL = "SELECT * FROM ItensPedidos WHERE CodigoPedido = " & codigo rsItensPedidos.Open strSQL, oConexao, adOpenKeyset, adLockPessimistic If rsItensPedidos.BOF Then ExibirItens = True Else Set itens = New Collection Dim oitemPedido As ItemPedidos Do While Not rsItensPedidos.EOF Set oitemPedido = New ItemPedidos With oitemPedido .codigoPedido = rsItensPedidos("CodigoPedido") .CodigoProduto = rsItensPedidos("CodigoProduto") .PrecoUnitario = rsItensPedidos("PrecoUnitario") .Desconto = rsItensPedidos("Desconto") End With itens.Add oitemVenda rsItensPedidos.movenext Loop End If rsItensPedidos.Close ExibirItens = True Exit Sub trata_erro_exibiritens: MsgBox " Ocorreu um erro durante a tentativa de exibir o item de pedido para o codigo : " & codigo & vbCrLf & _ " Erro nmero : " & Err.Number & vbCrLf & _ " Detalhes : " & Err.Description

Excluir = False End Function Ufa !! At que enfim terminamos esta parte , embora vamos precisar fazer alguns ajustes que eu vou deixar para comentar e mostrar na continuao do artigo , podemo dizer que conclumos a definio dos principais mtodos das classes do nosso projeto de Controle de Estoque. Acompanhe a continuaao do artigo em - VB6 - Controle de Estoques com ADO III...

Jos

Вам также может понравиться