MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    Problemas na consulta de CEP Offline

    Compartilhe

    greini
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 40
    Registrado : 27/03/2011

    Problemas na consulta de CEP Offline

    Mensagem  greini em Qui 27 Jul 2017, 01:36

    Boa noite.

    Estou com um pequeno problema quando executo um formulario para a pesquisa de endereço através de uma tabela de CEP.

    O que ocorre é que ao digitar, o BD não acompanha as teclas (demora a processar) e quando o digito mais que 3 caracteres o mesmo apaga os que ja foi digitado digitando apenas o quarto caractere.

    O código que estou usando é o seguinte

    Código:
    Option Compare Database
    Dim VarEspaco
    Private Sub Form_Load()
    Me.txt_Produto.SetFocus

    End Sub


    Private Sub clst_Produtos_Click()
    On Error Resume Next
    Forms.frm_cadforn.cbocep = Me.clst_Produtos.Column(1)
    Forms.frm_cadforn.TxtEndereco = Me.clst_Produtos.Column(0)
    Forms.frm_cadforn.txtbairo = Me.clst_Produtos.Column(2)
    Forms.frm_cadforn.txtCidade = Me.clst_Produtos.Column(3)
    Forms.frm_cadforn.txtEstado = Me.clst_Produtos.Column(4)
    DoCmd.Close acForm, "Frm_Procend"
    End Sub



    Private Sub Form_KeyPress(KeyAscii As Integer)
    If KeyAscii = 32 Then
    VarEspaco = 1
    End If
    End Sub

    Private Sub txt_Produto_AfterUpdate()
    Me.clst_Produtos.Requery
    End Sub

    Private Sub txt_Produto_Change()
    If VarEspaco = 1 Then
       VarEspaco = 0
        Else
             Me.Recalc
             SendKeys "{F2}"
        End If
      End Sub
     

    Acredito que isso ocorra devido ao grande numero de registros da tabela cep

    Obs: O nome da txtbox e do clst está como produto porque aproveitei um formulário de pesquisa de produtos que tinha e quando mudo o nome da erro Rolling Eyes
    avatar
    ronaldojr1
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 292
    Registrado : 01/08/2011

    Re: Problemas na consulta de CEP Offline

    Mensagem  ronaldojr1 em Qui 27 Jul 2017, 14:30

    bom dia

    o seu codigo achei um pouco confuso nunca trabalhei com combobox tentando monitorar as teclas digitadas.
    se quiser arrumar esse codigo por favor envia um bd de teste para eu ver se consigo te ajudar

    mas eu sugiro que vc use esse exemplo de Consulta de CEP criado pelo henry.lima e modificado por mim.
    nesse exemplo o access busca o cep em um webservice caso o cep não exista na tabela de cep consultados.

    [Você precisa estar registrado e conectado para ver este link.]

    é super simples adaptar e se vc montou a estrutura de cep do seu bd corretamente acho que vc nao tera dificuldades para importar.

    boa sorte ai fera
    em caso de duvidas nao deixe de perguntar

    greini
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 40
    Registrado : 27/03/2011

    Re: Problemas na consulta de CEP Offline

    Mensagem  greini em Qui 27 Jul 2017, 16:41

    Bom dia Ronaldo.

    A realidade é que meu bd inteiro parece um cabaré, rsrs.

    É o meu primeiro, então está cheio de "gambiarra", fui pegando algumas partes de outros BD e adaptando ao meu de acordo com minha necessidade e outras coisas fui cirando intuitivamente.


    Vou disponibiliza-lo aqui pra você dar uma olhada e caso alguém queira utilizar algo dele, afinal grande parte dele veio deste fórum.

    Quanto à questão do CEP, gostaria de utilizar offline mesmo pois utilizarei o sistema externamente, logo nem sempre terei acesso a internet, entendo que é complicado pois a tabela pesa o sistema e é desatualizada, mas acho que essa seria a melhor opção.

    Estou enviando sem a tabela cep pois mesmo excluindo os registros ficou muito grande.
    Mas o mesmo tipo de consulta é utilizado no frm_Pesquisaprod

    Como diz a minha mãe: Não repare a bagunça
    Anexos
    SySVendas - atualizado 26-07-17.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (1 Mb) Baixado 3 vez(es)
    avatar
    ronaldojr1
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 292
    Registrado : 01/08/2011

    Re: Problemas na consulta de CEP Offline

    Mensagem  ronaldojr1 em Qui 27 Jul 2017, 18:41

    como eu sempre digo na casa dos outros
    q isso minha casa ta pior,rsrs
    enfim, kd a tabela cbocep para eu fazer os testes?
    se vc nao mandou por causa do tamanho dela, faz assim, deixe uns 5 cadastros e exclua o resto

    greini
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 40
    Registrado : 27/03/2011

    Re: Problemas na consulta de CEP Offline

    Mensagem  greini em Qui 27 Jul 2017, 19:24

    Eu exclui e salvei mas continuou grande (90Mb) não entendi o porque, só reduziu depois que excluí a tabela.
    Mas de toda forma com poucos registros não tenho problema.
    Pode testar através do frm_pesquisaprod que é o mesmo código, inclusive foi a partir deste formulário que criei o frm pra consulta do cep, por isso o nome nos códigos da tabela de consulta de cep está como produto.
    avatar
    ronaldojr1
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 292
    Registrado : 01/08/2011

    Re: Problemas na consulta de CEP Offline

    Mensagem  ronaldojr1 em Qui 27 Jul 2017, 20:44

    faz um compactar e reparar apos excluir os registro, caso ainda ficar grande exclui tudo, preciso ver no minimo a estrutura da sua tabela.
    nao existe nenhum cep no form  frm_pesquisaprod, tem uma combobox, imagino que vc queira fazer o mesmo efeito no cep, entao siga esses passos
    do jeito q eu uso nos meus formulario.

    para vc entender vou ter q mostrar uma estrutura basica de tabela.

    tabela 1(Cliente)
    cdCliente - numeração automatica
    nomeCliente - texto
    Rg - texto
    cpf - texto
    ...

    tabela 2(venda)
    cdVenda - numeração automatica
    cdCliente - numero
    valorVenda - moeda
    ...

    no formulario de venda
    1 - eu vou ter os campos normalmente, mas a magica esta no campo cdCliente
    ele eu converto para comboBox(botao direito > alterar para > caixa de combinação).

    2 - na opção "Fonte de Controle"(propriedades > guia dados) eu faço uma consulta sql. nesse exemplo seria assim:
    select cdCliente, nmCliente, rg, cpf from Cliente order by nmCliente
    com isso seu campo cdCliente tera 4 colunas, o index começa com 0, ou seja, cdcliente e o index 0, nmCliente é o index 1, e assim sucessivamente.

    3 - essa parte e a mais importante, na opção "Coluna acoplada"(propriedades > guia dados)
    tem que ser informado de qual coluna vc deseja guardar a informação. nesse caso e a primeira coluna(cdCliente).
    para o cliente ira mostrar o nome do cliente, mas para sua tabela sera guardado o valor do id do cliente. legal né
    então nesse campo(Coluna Acoplada) digite 1

    4 - na opção "Número de Colunas"(Propriedades > guia Formato) informe a quantidade de colunas da nossa consulta, no nosso caso e 4.

    5 - na opção "Largura das colunas"(Propriedades > guia Formato) informe o tamanho de cada coluna do combobox separado por ";"
    para o usuario final seria interessante ele apenas ver o nome do cliente, pq nesse caso ele nao precisa ver id, cpf e rg na combobox,
    esses valores pode ser salvos de outra forma que irei mostrar mais abaixo. nesse caso a largura dos campos seria assim:
    0;5;0;0

    resgatando o restante dos campos:
    vamos supor que vc tem o campo rg(esse campo nao faz parte da tabela venda, por tanto ele e um campo não acoplado) do formulario venda.

    vc pode colocar o seguinte codigo no evento apos atualizar da combobox que acabamos de criar:

    Código:

    if not isnull(cdCliente) then
      rg = cdCliente.Column(2) '2 e o indice do campo na consulta que criamos no passo 1
    else
      rg = ""
    endif


    Última edição por ronaldojr1 em Qui 27 Jul 2017, 20:57, editado 1 vez(es)

    greini
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 40
    Registrado : 27/03/2011

    Re: Problemas na consulta de CEP Offline

    Mensagem  greini em Qui 27 Jul 2017, 20:54

    Segue o arquivo
    Anexos
    SySVendas - atualizado 26-07-17 atualizado.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (1 Mb) Baixado 2 vez(es)
    avatar
    ronaldojr1
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 292
    Registrado : 01/08/2011

    Re: Problemas na consulta de CEP Offline

    Mensagem  ronaldojr1 em Qui 27 Jul 2017, 20:58

    vou dar uma olhada no seu banco, mas tenta adaptar ai de acordo com a mensagem que mandei agora a pouco
    avatar
    ronaldojr1
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 292
    Registrado : 01/08/2011

    Re: Problemas na consulta de CEP Offline

    Mensagem  ronaldojr1 em Qui 27 Jul 2017, 21:09

    boa tarde,
    abri alguns formularios que usam o seu campo de cep nao deu erro nenhum funcionou normal,
    vc pode especificar exatamente em qual form e qual o procedimento que vc faz que gera o erro.
    grato

    Dica, ou vc oculta o resto das colunas na combobox ou aumenta a largura delas para o usuario final visualizar melhor.
    isso faz nas opções "largura das colunas", no seu caso vc pode deixar 5;0;0;0


      Data/hora atual: Ter 19 Set 2017, 12:46