USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Pesquisa CEP
FKNMALTA
FRANCA
SP - BRASIL
ENUNCIADA !
Postada em 13/04/2008 17:20 hs         
Tenho um formulario de cadastro onde tem um campo de cep, hoje eu faço a consulta do cep clicando em um botao de pesquisa ou usando uma tecla de atalho que ao clicar abre o formulario de pesquisa, tem a funcao sql que faz a busca por cep ou rua:
 
'formulario de pesquisa cep:
Private Sub txtbusca_Change()
On Error GoTo trata_erro
    If optcep.Value = True Then
   sql = "CEP like '" & txtbusca.Text & "%'"
Else
   sql = "RUA like '" & txtbusca.Text & "%'"
End If
Adodc1.Recordset.Filter = sql
 
e a funcão no formulario PesquisaCep para preencher o formulario depois de efetuar a busca e encontrar o endereço:
 
'formulario de pesquisa cep:
Private Sub BotaoOk_Click()
On Error Resume Next
    Load frmPesquisaCep
    frmCadCliente.txtRua.Text = dtgrdcep.Columns(1)
    frmCadCliente.txtCep.Text = dtgrdcep.Columns(2)
    frmCadCliente.txtCidade.Text = dtgrdcep.Columns(3)
Unload frmPesquisaCep
 
Eu queria fazer o seguinte, caso a pessoa ja saiba o numero do cep, ao digitar no formulario do cadastro, fazer o preenchimento dos campos (rua,cep,cidade....) como é feito no botaoOK do formulario de pesquisa cep, sem ter que abrir o formulario de busca e nem ter que procuar e depois dar clicar no botao Ok.....
Acho que no botão lostfocus do campo txtcep, colocar uma função que busca e ja preenche e se não encontrar dar a mensagem de que o cep esta invalido, daria certo...como fazer?????
TÓPICO EDITADO
 
Perci
MATÃO
SP - BRASIL
ENUNCIADA !
Postada em 14/04/2008 10:28 hs            
Você quer digitar o CEP no TextBox e mostrar os dados nos respectivos campos? É isso?
Se for isso que eu estou pensando, tenta assim: eu faço dessa maneira:
 
No evento KeyDown do TxtCep, indique que se for teclado ENTER no campo, chamará a rotina que mostra os dados:
 
Private Sub TxtCep_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = vbKeyReturn Then
        KeyAscii = 0
        Call Mostradados
        Exit Sub
    End If
End sub
Depois, monte a rotina para mostrar os dados.
 
Private Sub MostraDados()
    If TxtCep.Text = Empty Or TxtCep.Text = Null Then
        MsgBox "Digite número do CEP", vbInformation, "Número inválido"
        Exit Sub
    End If
    sqlcep = "Select * From Cep Where numerocep Like '" & TxtCep.Text
    Set rscep = db.OpenRecordset(sqlcep)
    If rscep.EOF Then
        Exit Sub
    End If
    TxtRua.Text = rscep("rua")
    Txtendereco.Text = rscep("endereco")
End Sub
 
Acho que é mais ou menos isso.
 
Espero ter ajudado.
 
Até mais.
   
FKNMALTA
FRANCA
SP - BRASIL
ENUNCIADA !
Postada em 14/04/2008 21:54 hs         
Blz valew fiz assim....:
If txtcep.Text = Empty Or txtcep.Text = Null Then
        MsgBox "Digite número do CEP", vbInformation, "Número inválido"
        txtcep.SetFocus
        Exit Sub
    End If
    sql = "CEP like '" & txtcep.Text & "%'"
    Adodc1.Recordset.Filter = sql
    If Adodc1.Recordset.EOF Then
        Exit Sub
    End If
    txtrua.Text = Adodc1.Recordset("Rua")
    txtlogradouro.Text = Adodc1.Recordset("Logradouro")
 
A checagem se o campo esta em branco deu certo mas se eu digitar qualquer coisa no campo ele aceita....como que eu faço pra checar se o cep é valido ou se existe na tabela de cep?
TÓPICO EDITADO
 
Perci
MATÃO
SP - BRASIL
Postada em 15/04/2008 08:00 hs            
Essa parte do meu código é a que faz isso:
 
sqlcep = "Select * From Cep Where numerocep Like '" & TxtCep.Text & "'"
    Set rscep = db.OpenRecordset(sqlcep)
    If rscep.EOF Then
        Exit Sub
    End If

    TxtRua.Text = rscep("rua")
    Txtlogradouro.Text = rscep("logradouro")
 
O código pesquisa na tabela de Ceps onde o número do cep é igual ao digitado na TextBox.
Se o número não for encontrado na tabela, ele sai da rotina, mas se encontrar, vai atribuir os valores das TextBox rua e logradouro, etc..
 
No meu programa deu certo.
Testa e depois responda.
     
FKNMALTA
FRANCA
SP - BRASIL
Postada em 15/04/2008 17:29 hs         
tem que declarar alguma coisa?
     
Perci
MATÃO
SP - BRASIL
Postada em 16/04/2008 08:11 hs            
Colega, não é preciso declarar nada, não.
A diferença é que você usa o ADO e eu uso DAO.
Mas o que você tem que fazer é uma consulta com SQL, procurando os registros na tabela que satisfaçam à condição que você deseja.
 
sqlcep = "Select * From Cep Where numerocep Like '" & TxtCep.Text & "'"

Minha consulta está retornando todos os campos da tabela CEP (Select * From Cep) onde o número do CEP é igual ao que for digitado na TextBox (Where numerocep Like '" & TxtCep.Text & "'")

If rscep.EOF Then
    Exit Sub
End If

TxtRua.Text = rscep("rua")
Txtlogradouro.Text = rscep("logradouro")

Depois eu verifico se o registro existe ou não. Se não existir, ele vai aceitar digitar normalmente, mas se existir ele vai preencher os respectivos campos (rua, logradouro) com os dados que ele encontrou na tabela.

Deu para entender?

Até mais.

     
Página(s): 1/1    

CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página