PREENCHENDO COMBOBOX

ALMIR2014 14/01/2015 15:19:46
#443793
Boa tarde pessoal, esta é minha primeira pergunta neste fórum.
Gostaria de vossas ajudas no seguinte código abaixo:

Este código abaixo vai popular um combo chamado de cboEstado quando o utilizador informar o CEP que é feito busca na internet automaticamente. Até aqui, beleza, funciona perfeito.
// Using con As OleDbConnection = GetConection()
con.Open()
Dim Dr As OleDbDataReader
Dim Sql As String = [Ô]select UF from TBEstados[Ô]
Dim Cmd As OleDbCommand = New OleDbCommand(Sql, con)
Dr = Cmd.ExecuteReader
cboEstado.Items.Clear()
While Dr.Read
cboEstado.Items.Add(Dr.Item([Ô]UF[Ô]).ToString)
End While
cboEstado.EndUpdate()
con.Close()
End Using

Já este outro código vai popular uma outra combo por nome de cboMunicpios com os municípios do estado selecionado na cboEstado
Using con As OleDbConnection = GetConection()
con.Open()
Dim Dr As OleDbDataReader
Dim Sql As String = [Ô]select NomeMunicipio from TBMunicipios Where Estado Like [ô]%[Ô] & CStr(cboEstado.Text) & [Ô]%[ô][Ô]
Dim Cmd As OleDbCommand = New OleDbCommand(Sql, con)
Dr = Cmd.ExecuteReader
cboMunicipio.Items.Clear()
txtCodigoMunicipio.Clear()
txtCodPais.Clear()
While Dr.Read
cboMunicipio.Items.Add(Dr.Item([Ô]NomeMunicipio[Ô]).ToString)
End While
cboEstado.EndUpdate()
con.Close()
End Using
Até aqui tudo certo, porém meu problema começa agora.
Este outro codigo abaixo, preenche dois textBox, um txtCodMunicípio e outro txtCodPais

Está funcionando, porém, de forma aleatória, se existir municipios de mesmo nome em estados diferentes a busca não está coincidindo o Estado com seus muncipios.
o município de Bonito existe em outros estados brasileiro, sendo PA-Para, ?BA-Bahia e MS-Mato G. Sul, PE-Pernambuco
ao selecionar o estado da bahia, ele está buscando o codigo do municipio de MS
e assim pros demais estados que tenham mesmo nome de municpíos, é como se ele estivesse buscando o ultimo ou o primeiro, nao sei, mas pela lógia deve ser o ultimo pois o Municpio de Bonito da Bahia tem o codigo nr 2904050 e MS é 5002209
Não sei o que está acontecendo
Alguem poderia me ajudar?

Codigo que faz a busca pelo nome do múnicipio

Using con As OleDbConnection = GetConection()
con.Open()
Dim Dr As OleDbDataReader
Dim Sql As String = [Ô]select CodMunicipio,CodPais from TBMunicipios Where NomeMunicipio Like [ô]%[Ô] & CStr(cboMunicipio.Text) & [Ô]%[ô][Ô]
Dim Cmd As OleDbCommand = New OleDbCommand(Sql, con)
Dr = Cmd.ExecuteReader
txtCodigoMunicipio.Clear()
txtCodPais.Clear()
While Dr.Read
txtCodigoMunicipio.Text = Dr.Item([Ô]CodMunicipio[Ô])
txtCodPais.Text = Dr.Item([Ô]CodPais[Ô])
End While
con.Close()
End Using

Obrigado por enquanto.
NILSONTRES 14/01/2015 15:39:22
#443799
Resposta escolhida
Vi rapidamente, mas me parece aqui o problema.
Citação:

Where Estado Like [ô]%[Ô] & CStr(cboEstado.Text) & [Ô]%[ô]



Like não se utiliza nesse caso.

Utlize:Where Estado = [ô][Ô] & CStr(cboEstado.Text) & [Ô][ô]
NICKOSOFT 14/01/2015 15:46:37
#443801
refine a busca, where nomemunicipio = o combo and estado = o combo
assim o retorno tem q atender aos 2 criterios, e nao qq municipio com aquele nome, seja no estado ou nao
ALMIR2014 14/01/2015 15:47:32
#443802
Obrigado, tente da forma que me falastes, porem ainda não deu certo.
Veja bem o codigo que preenche a combo estado e o codigo que peenche a compo municipios está perfeito.
o problema está no codigo abaixo:
Using con As OleDbConnection = GetConection()
con.Open()
Dim Dr As OleDbDataReader
Dim Sql As String = [Ô]select CodMunicipio,CodPais from TBMunicipios Where NomeMunicipio = [ô][Ô] & CStr(cboMunicipio.Text) & [Ô][ô][Ô]
Dim Cmd As OleDbCommand = New OleDbCommand(Sql, con)
Dr = Cmd.ExecuteReader
txtCodigoMunicipio.Clear()
txtCodPais.Clear()

While Dr.Read
txtCodigoMunicipio.Text = Dr.Item([Ô]CodMunicipio[Ô])
txtCodPais.Text = Dr.Item([Ô]CodPais[Ô])
End While

con.Close()
End Using
ALMIR2014 14/01/2015 16:00:21
#443804
NICKOSOFT
Poderia por gentileza descrever como eu refinaria esta busca dentro da linha de comando? por favor;
Dim Sql As String = [Ô]select * from TBMunicipios Where NomeMunicipio = [ô][Ô] & cboMunicipio.Text & [Ô][ô][Ô]
NILSONTRES 14/01/2015 17:02:18
#443808
Nesse caso vc tem que passar o municipio e o estado desejado.
[Ô]select CodMunicipio,CodPais from TBMunicipios Where NomeMunicipio = [ô][Ô] & CStr(cboMunicipio.Text) & [Ô][ô] And Estado= [ô][Ô] & CStr(cboEstado.Text) & [Ô][ô][Ô]
ALMIR2014 14/01/2015 17:08:20
#443809
Citação:

:
Nesse caso vc tem que passar o municipio e o estado desejado.
[Ô]select CodMunicipio,CodPais from TBMunicipios Where NomeMunicipio = [ô][Ô] & CStr(cboMunicipio.Text) & [Ô][ô] And Estado= [ô][Ô] & CStr(cboEstado.Text) & [Ô][ô][Ô]


Cara valeu, agora
Funcionou beleza.
O que seria dos aprendizes se não fossem os professores. Ainda assim o Brasil desvaloriza e desmerecem os professores deste país.

Obrigado amigos, solucionado o problema.

Att
Almir
Tópico encerrado , respostas não são mais permitidas