Página 1 de 6

Modelo de Cadastro com BD Access

Enviado: Dom Nov 06, 2011 3:23 pm
por LEANDRO ALVES
Caros colegas do forum,

Eu fiquei fascinado com este material disponibilizado pelo prezado amigo JoseA no sequinge topico:viewtopic.php?f=22&t=1408. Então para meu proprio treino e para poder compartilhar com os amigos, resolvi adaptar o Modelo de Cadastro do Tomaz para Banco de Dados Access. É claro que preciso dar uma melhorada nos codigos, mas até que funciou legal. Nos testes que fiz encotrei apenas dois bugs que nao pude resolver. Sao eles: O btnProximo quando atinge o ultimo registro volta ao primeiro ( mas nao impede o funcionamento em nada). O segundo bug é que quando seleciono um registro a partir do frmPesquisa( lstv_Dblclick) para o frmCadastro, o lblNavigator nao atualiza seu valor com o indice do registro selecionando, mas tambem nao impede o funcionamento do aplicativo.
Bom espero que gostem, fica aberto pra que quiser melhorar, ja que estamos todos juntos nessa jornada e eu continuarei tentando resolver os bugs citados acima.

Um abraço :D

Leandro Alves

Re: Modelo de Cadastro com BD Access

Enviado: Dom Nov 06, 2011 7:32 pm
por joseA
:D Nossa Leandro, :o

Ficou demais cara.
LEANDRO ALVES escreveu:...Nos testes que fiz encotrei apenas dois bugs que nao pude resolver. Sao eles: O btnProximo quando atinge o ultimo registro volta ao primeiro ( mas nao impede o funcionamento em nada)...
Penso que para esse caso, deveria ser colocado o registro atual em um Label e o total de registros em outro, assim poderias comparar quando o registro atual atingisse o mesmo valor do total de registros aplicarias uma Exit Sub.

LEANDRO ALVES escreveu:...Eu fiquei fascinado com este material disponibilizado...
O que me fascinou, nesse material, que não é de minha autoria é a fácilidade de compreensão das instrunções, o qual me animou também.

Re: Modelo de Cadastro com BD Access

Enviado: Seg Nov 07, 2011 2:11 pm
por webmaster
UAU!

Acho que vou me aposentar. Ficou muito bom! Prometi isso para comunidade e fórum a tempos e não tinha conseguido fazer até então (a velha falta de tempo ;) ).

Só posso agradecer em nome de todos. Se importa se publicar essa atualização do blog? Faço questão de mencionar os devidos créditos.

Abraços e obrigado

Re: Modelo de Cadastro com BD Access

Enviado: Seg Nov 07, 2011 3:05 pm
por LEANDRO ALVES
Caro Colega JoseA, fico muito grato pela sua atenção, acredito que sua sugestao pode solucionar problema do btnproximo. Vou tentar e assim que conseguir posto o resultado. Realmente as explicaçoes da apostila sao muito claras e envolventes ao mesmo tempo. Pra que tem interesse em desenvolver aplicaçoes independentes em Visual Basic 6.0 acredito que este seja o caminho (fiz alguns testes utilizando estes procedimentos e funcionou bem). Mas uma vez obrigado pela contribuiçao.

Quanto ao amigo Tomás, fico muito feliz que tenha gostado e me sentirei muito honrando se voce postar a atualizaçao no blog. Eu é que tenho que te agradecer pelo maravilhoso trabalho que é este forúm onde encotramos sempre várias soluções às nossas duvidas . É com diz o amigo Mauro coutinho: "Se tenho duvida, pergunto. Se sei, compartilho."

Um abraço a todos,

Leandro Alves

Re: Modelo de Cadastro com BD Access

Enviado: Seg Nov 07, 2011 5:18 pm
por joseA
LEANDRO ALVES escreveu:... O segundo bug é que quando seleciono um registro a partir do frmPesquisa( lstv_Dblclick) para o frmCadastro, o lblNavigator nao atualiza seu valor com o indice do registro selecionando...
Pensando bem Leandro,

Para esse segundo "bug", a mesma lógica resolverá. Bastaria inserir uma linha em lstv_Dblclick para carregar o ´nº do registro pesquisado para esse novo Label (registro atual). ;)

Re: Modelo de Cadastro com BD Access

Enviado: Seg Nov 07, 2011 5:42 pm
por joseA
Em tempo...

Uma opção para criar um acesso aos dados. Inserir uma Plan2 e na Plan1 criar um botão associado à seguinte instrução:

Código: Selecionar todos

Sub ImportarDados()
Plan2.Select
'Declarando Variavel de conecção
Dim Conecção As ADODB.Connection
'Declarando Variavel de armazenamento da dados
Dim Dados As ADODB.Recordset
'Definindo Variavel conecção com nova consulta
Set Conecção = New ADODB.Connection
'Definindo parâmetros para conecção
With Conecção
.ConnectionString = "Provider=Microsoft.Jet.oledb.4.0;Data Source=" & ThisWorkbook.Path & "\Base.mdb"
.Open
End With
'Definindo nova busca e armazenamento dos dados da Tabela
Set Dados = New ADODB.Recordset
'Definindo parâmetros dos dados
Dados.Open "Fornecedores", Conecção, adOpenKeyset, adLockOptimistic, adCmdTable
'Observe que a palavra "banco" representa a tabela
'Declarando variavel WorkSheet
Dim Xlst As Excel.Worksheet
Set Xlst = Sheets("Plan2")
'Copiando os dados para Plan2
Xlst.Range("A2").CopyFromRecordset Dados
'Ajusta a largura das colunas
Plan2.Columns("A:L").AutoFit

Dados.Close
Set Dados = Nothing
Conecção.Close
Set Conecção = Nothing
End Sub

Re: Modelo de Cadastro com BD Access

Enviado: Ter Nov 08, 2011 11:56 am
por LEANDRO ALVES
Caro colega JoseA,

Consegui resolver o problema do primeiro bug com sua otima sugestao. Dividi o lblNavigator em tres: lblIndice, lbl_de e lblTotal e coloquei uma rotina para o btnproximo funcionar somente se indice for diferente de total, ou seja quando indice ficar igual ao total o btn trava. certo? ;)
Quanto sua segunda sugestao, acredito que funcionaria, mas eu ja havia desenvolvido uma function para resolver este problema atraves de um loop.
agora esta tudo funcionando direitinho. E o anexo com o aplicatvio ja esta atualizado.

Código: Selecionar todos

Public Function Id()
    
    Dim cx As New ClasseConexao
    Dim banco As ADODB.Recordset
    Dim sql As String
    Dim i As Long
    
    
    sql = "SELECT * FROM Fornecedores"
    Set banco = New ADODB.Recordset
    cx.Conectar
    banco.Open sql, cx.Conn, adOpenKeyset, adLockOptimistic
    Total = banco.RecordCount
    
    For i = 1 To banco.RecordCount
        If banco(0) = frmPesquisa.lstv.SelectedItem Then
            Id = i
            Exit For
        Else
            banco.MoveNext
        End If
   Next
   
   Set banco = Nothing
   cx.Desconectar

End Function


Muito obrigado pelas sugestoes

Um abraço

Leandro Alves

Re: Modelo de Cadastro com BD Access

Enviado: Ter Nov 22, 2011 9:01 am
por joseA
Leandro,

Verifiquei um "bug", fácil de resolver, ao inserir dados e não digitar nada nos controles é acrescentada uma linha em branco no Bd, apenas o Id.

Seria só aplicar uma instrução condicional para alguns controles como campos obrigatórios.

Re: Modelo de Cadastro com BD Access

Enviado: Qui Dez 01, 2011 12:05 pm
por noxios
Olá
Poderiam me informar qual é, ou são as principais vantagens (se as ha) em usar a BD do Access ao invés de usar a BD do Excel ?

Obrigado
@+

Re: Modelo de Cadastro com BD Access

Enviado: Qui Dez 01, 2011 1:58 pm
por webmaster
Colega,

Acredito que muitas pessoas darão respostas sobre isso, e muito diversificadas. Mas, para entender completamente todas elas, vai precisar ler e entender o que é o Access.

Já adianto que as vantagens são no mínimo incontestáveis quando falamos de um grande sistema.

Abraços