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

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Select para Buscar nomes de ruas
Glaucia Helena
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 02/12/2005 14:35 hs            
Olá amigos, estou precisando achar cep pelo nome de ruas, mas tenho que selecionar primeiro a UF, depois selecionar as cidades, depois sim selecionar os nomes de ruas. Assim a pesquisa fica mais rápida !
Tenho uma tela onde existe 3 TextBox :
A primeira onde escolho a UF a segunda onde escolho a cidade e a terceira onde escolho o nome da rua.
São dois tipos de pesquisas, tenho que pesquisar o nome da rua onde contenha um nome. Ex:
 
Nome da Rua 
Manoel
 
me mostre todos os nomes de ruas que contenha Manoel.
A segunda é:
Eu digitar o nome de uma rua: José Armando, e ele me traz exatamente esse nome
 
Alguém pode me ajudar ?
 
Obrigada
                   
   
Tekki
Pontos: 2843 Pontos: 2843 Pontos: 2843
UBERLÂNDIA
MG - BRASIL
Postada em 03/12/2005 07:57 hs            
Use SQL
 
Ex:
txtUF = SP
txtCidade = São Paulo
txtRua = Armando
 
 
sSQL = "Select Rua, Cidade, UF From CEPs Where " & _
" UF = '" & txtUF & "'" & _
" And Cidade = '" & txtcidade & "'" & _
" And Rua like '%" & txtrua & "%'"
 
No retorno terá:
José Armando
Raul Armando
Armando Martins
....
Paulo Roberto Armando
....
 
 
É isto o que você quer?

 
 
 
 
 
     
Geronimo
Pontos: 2843
JOINVILLE
SC - BRASIL
ENUNCIADA !
Postada em 03/12/2005 08:48 hs            
Sugiro você trabalhar com combobox :
1ª ComboEstado :
Private Sub NomeEstado_GotFocus()
On Error GoTo Trata_Erro
Set BancoDeDados = OpenDatabase(App.Path & "salao.MDB", False)
Set TBDados = BancoDeDados.OpenRecordset("select distinct Estado from dados  order by Estado asc")

With NomeEstado
    .Clear
      Do While Not TBDados.EOF
       .AddItem TBDados("Estado")
        TBDados.MoveNext
      Loop
   End With
Exit Sub
Trata_Erro:
MsgBox "Você NÃO Selecionou uma DATA VÁLIDA!!!!"
End Sub
 
2ª ComboBox :
Private Sub NomeCidade_GotFocus()
On Error GoTo Trata_Erro
Set BancoDeDados = OpenDatabase(App.Path & "salao.MDB", False)
Set TBDados = BancoDeDados.OpenRecordset("select distinct Cidade from dados where Estado='" & NomeEstado.Text & "'order by Cidade asc")

With NomeCidade
    .Clear
      Do While Not TBDados.EOF
       .AddItem TBDados("Cidade")
        TBDados.MoveNext
      Loop
   End With
Exit Sub
Trata_Erro:
MsgBox "Você NÃO Selecionou uma DATA VÁLIDA!!!!"
  
End Sub
 
3ª Combobox :
Private Sub NomeRua_GotFocus()
On Error GoTo Trata_Erro
Set BancoDeDados = OpenDatabase(App.Path & "salao.MDB", False)
Set TBDados = BancoDeDados.OpenRecordset("select distinct Rua from dados where Estado='" & NomeEstado.Text & "' and Cidade='" & NomeCidade.Text & "' order by Rua asc")

With NomeRua
    .Clear
      Do While Not TBDados.EOF
       .AddItem TBDados("Rua")
        TBDados.MoveNext
      Loop
   End With
Exit Sub
Trata_Erro:
MsgBox "Você NÃO Selecionou uma DATA VÁLIDA!!!!"
  
End Sub
 
Baixo passo o outro codigo para pesquisa ::: )))

"O pior inimigo que você poderá encontrar será sempre você mesmo."
   
Geronimo
Pontos: 2843
JOINVILLE
SC - BRASIL
ENUNCIADA !
Postada em 03/12/2005 09:07 hs            
Para a segunda parte da sua pergunta tente algo assim:

Coloque no form um list e um textbox chamado (Descrição):

‘General – declarations

Private Const LB_SETTABSTOPS = &H192 ' tabular lista

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 ' tabular lista

 

Dim Tbcadastro As Recordset

Dim BancoDeDados As Database

 

Private Sub Descricao_Change()

'Faz a pesquisa por Nome no Banco de Dados

'utilizando SQL. Note que essa procedure é

'executada quando alguma alteração ocorre na

'caixa de texto (quando o usuário digita

'alguma coisa). O texto disponível nessa caixa

'de texto é utilizado na pesquisa SQL,

'verificando os nomes que começam com as letras

'digtadas. Os nomes encontrados são apresentados

'em um ListBox. Por exemplo, podemos pesquisar

'todos os nomes que começam com José ou com Jo .

'Nesse sgundo caso, serão apresentados nomes tais

'como José, João, Joana, etc. Ao clicar sobre um nome

'no ListBox, serão apresentados os dados referentes a

'ao aluno selecionado.

'Declaramos as variáveis utilizadas.

Dim Dado As String, Mensagem As String

Dim Consulta_SQL As String

Dim resultado As String

Dim Contador As Integer, Total_encontrado As Integer

'"Zeramos" as variáveis utilizadas

'para colocar os nomes encontrados

'dentro do ListBox.

Contador = 0

Total_encontrado = 0

'Limpamos o ListBox.

List1.Clear

'O nome (ou o início dele) a ser

'pesquisado é atribído à variável Dado.

Dado = Descricao.Text

'Monta o comando SQL e o armazena na String Consulta_SQL.

'Veja que após o nome pesquisado é colocado um asterístico

'Dado + "*'", para indicar que podem existir outras letras

'além das especificadas.

Consulta_SQL = "SELECT * " _

+ "FROM CADASTRO " _

+ "WHERE nome LIKE '*" _

+ Dado + "*'" _

+ "ORDER BY nome;"

'A variável Cadastro (definida como sendo do tipo Recordset

'em General - Declarations) recebe o resultado da pesquisa

'SQL montada em Consulta_SQL .

'

Set Tbcadastro = BancoDeDados.OpenRecordset(Consulta_SQL, dbOpenDynaset)

'Agora, testamos o valor da propriedade AbsolutePosition

'a qual nos indica o sucesso ou não da pesquisa, conforme

'comentado anteriormente.

'Verificamos o total de Cadastros encontrados.

Total_encontrado = Tbcadastro.RecordCount

'Em seguida, apresentamos esse

'total na caixa de texto Registro.

Registro.Text = Total_encontrado

'Alteramos o ToolTip (aquela barra amarela

'com algum texto explicativo, a qual é

'apresentada quando passamos com o mouse sobre

'um objeto - botão, caixa de texto, listbox. etc.

If Total_encontrado > 1 Then

'Caso tenha sido encontrado algum aluno,

'ajustamos o seguinte ToolTip.

List1.ToolTipText = "Clique em um dos Clientes " + _

"disponíveis para verificar dados completos."

Else

'Entretanto, caso a pesquisa não encontre

'pelo menos um aluno com o nome especificado,

'alteramos o ToolTip para o seguinte texto:

List1.ToolTipText = "Nenhum Cliente disponível."

End If

'O loop Do...Until, utilizado a seguir,

'coloca os nomes encontrado no ListBox.

Do

'É feito um teste para verificar a posição

'absoluta do registro que será mostrado.

'Esse teste é apenas uma precaução para que

'não se tente mostrar um registro inexistente.

If Tbcadastro.AbsolutePosition > -1 Then

'Adiciona o nome encontrado no ListBox.

Dim Tabs(1 To 3) As Long

Tabs(1) = 0

'Tabs(2) = 60 'Onde 0,e 60,e 200, é o numero de caracteres'

'Tabs(3) = 200

SendMessage List1.hWnd, LB_SETTABSTOPS, 3, Tabs(1)

List1.AddItem Tbcadastro("Nome")

'A variável Contador (zerada no início desta

'procedure) é incrementada. Ela está sendo

'utilizada para contar o total de registros

'apresentados aos usuários.

Contador = Contador + 1

'Como a pesquisa SQL foi ordenada por descricao

'(veja o trecho final da instrução SQL ORDER BY Nome;)

'agora vamos para o próximo registro,

'utilizando a instrução MoveNext.

Tbcadastro.MoveNext

End If

'O loop Do...Loop Until é executado enquanto o

'Contador for menor ou igual ao total de resgistros

'encontrados (utilizando a variável Total_encontrado)

Loop Until Contador >= Total_encontrado

End Sub

Private Sub List1_Click()

'Declara as variáveis utilizadas.

Dim Dado As String

Dim Consulta_SQL As String

Dim resultado As String

Dado = List1.Text

Consulta_SQL = "SELECT * FROM CADASTRO WHERE nome = '" _

+ Dado + "' "

Set Tbcadastro = BancoDeDados.OpenRecordset(Consulta_SQL, dbOpenDynaset)

If Tbcadastro.AbsolutePosition > -1 Then

'Mostramos o nome encontrado

NomeCliente.Text = Tbcadastro("Nome")

Else

resultado = MsgBox("Descrição não encontrada.", vbInformation)

End If

End Sub


"O pior inimigo que você poderá encontrar será sempre você mesmo."
   
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



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