PESQUISA NO LISTBOX COM TEXTBOX

NILTON.VIANNA 04/06/2011 16:40:30
#375856
Citação:

apesar de tanta duvida, vou ter que terminar meu projeto no vb6


é seguinte amigos estou fazendo um cadastro ao digitar o nome ele automaticamente seleciona na ListBox o nome digitado
ok,
ficou assim no textbox:

Private Sub txtNomeP_Change()
Dim SQL As String
Dim RS As Recordset
SQL = [Ô]SELECT NomeP, PacienteID FROM Cad_Paciente WHERE NomeP Like [ô][Ô] & txtNomeP.Text & [Ô]%[ô] Order BY NomeP[Ô]
Set RS = CnSql.Execute(SQL)
ListP.Clear
ListP.Visible = False
Do While Not RS.EOF
ListP.AddItem RS!NomeP
ListP.Visible = True
RS.MoveNext
Loop
End Sub

quando do um dblClick
no list
ele pega o item e carrega todos os textbox do meu form
Private Sub ListP_dblClick()
GBExcluir.Enabled = True
GBEnvelope.Enabled = True
GBImprimir.Enabled = True
GBSalvar.Enabled = True
GBNovo.Enabled = False

txtNomeP.Text = ListP.Text
ListP.Visible = False
If RS.State = 1 Then RS.Close
vOp = [Ô][Ô]
SQL = [Ô]SELECT * FROM Cad_Paciente WHERE NomeP Like [ô][Ô] & txtNomeP & [Ô]%[ô] Order BY NomeP[Ô]
RS.Open SQL, CnSql, adOpenKeyset, adLockPessimistic

txtPacienteID.Text = RS([Ô]PacienteID[Ô])
txtNomeP.Text = RS([Ô]NomeP[Ô])
txtEndeP.Text = RS([Ô]EndeP[Ô]) & [Ô][Ô]
End If
RS.Close
End Sub

Ok ate ai tudo bem
mais quando na tabela tem dois nomes iguais ex:

Nome ID
-------------------------------------
Marcos Paulo da Silva - 00100
Marcos Paulo da Silva - 00257

independente do qual for digitar ele semnpre pega o mesmo

Grato


TECLA 04/06/2011 20:37:01
#375870
O problema é que você carregou o LISTBOX somente com o NOME, e esqueceu do principal, que é o ID.
Faça o seguinte:

[ô] Preencher o combo com o ID e o Nome do cliente
Do While Not RS.EOF
ListP.AddItem RS!NomeP
ListP.ItemData(ListP.NewIndex) = RS!ID
ListP.Visible = True
RS.MoveNext
Loop


Para recuperar o identificador do cliente selecionado, recupere o valor armazenado na propriedade ITEMDATA.

[ô] ID do cliente selecionado
IdDoCliente = ListP.ItemData(ListP.ListIndex)
NILTON.VIANNA 05/06/2011 17:53:14
#375908
TECLA estou usando um LISTBOX
MARCELO.TREZE 05/06/2011 18:01:42
#375910
vc não está pegando o da do list box, tente esta alteração

veja nesta linha

SQL = [Ô]SELECT * FROM Cad_Paciente WHERE  NomeP Like [ô][Ô] & ListP.List(ListP.ListIndex) & [Ô]%[ô] Order BY NomeP[Ô]
NILTON.VIANNA 05/06/2011 18:09:31
#375912

achei o erro estava colocando NomeP Like =

SQL = [Ô]SELECT * FROM Cad_Paciente WHERE NomeP Like [ô][Ô] & txtNomeP & [Ô][ô][Ô]

apenas (=) <

valeu pessoal pela ajuda
Tópico encerrado , respostas não são mais permitidas