BUSCAR O ID DO ITEM ESCOLHIDO NUM LISTBOX

USUARIO.EXCLUIDOS 02/03/2005 18:05:23
#70812
Galera, olha só...

Fiz um form para pesquisa, onde posso buscar pela matrícula OU pelo nome.
O resultado dessa pesquisa é exibida num listbox. Até aí blz...
O problema é q eu concatenei os dois campos (matr - nome), e cada linha recebe os dois valores, e agora quero pegar somente a matrícula.
Como eu faço? [S57]
Queria saber se tem como eu pegar pelo listbox.listindex?
Tipo, conforme vai adicionando um item no list, eu guardar a matricula por index. Pois qdo tento exibir a matrícula, vem só a última da lista! [S70]

Desde já agradeço!

Beijos a todos!
USUARIO.EXCLUIDOS 03/03/2005 07:56:14
#70866
o jeito mais simples é acertar na carga do listbox a propriedade ItemData

a cada item que adicionar acerte o ItemData com o número da matrícula

exemplo:
list1.additem "TESTE"
list1.ItemData(List1.NewIndex) = 123

desta forma, qdo precisar pegar o número de matrícula você pode usar:
Matricula = List1.ItemData(List1.ListIndex)
USUARIO.EXCLUIDOS 03/03/2005 09:56:42
#70904
Valeu a idéia! Eu realmente não tinha tido esta idéia!
...Mas esqueci de dizer q a matrícula é alfa numérica, de modo de dá conflito no índice! [S55]

Se tiver outra idéia, mesmo q não envolva listbox, eu aceito! hehehehe

De qq forma, vlw!
[S82] [S67]
USUARIO.EXCLUIDOS 03/03/2005 10:49:47
#70923
Tente utilizar a função Instr e Mid, para delimitar oa mátrícula e o nome, por ex.:
Private Sub Command1_Click()
Dim iMat As Long
Dim sMat As String
iMat = InStr(1, Me.List1.Text, "-")
sMat = Mid(Me.List1.Text, iMat + 1)
Me.Text1.Text = Trim(sMat)
End Sub

Private Sub Form_Load()
With Me.List1
.AddItem "João Carlos - 1AD302"
.AddItem "João Cesar - 32D562"
.AddItem "João Marcos- 36SD56"
.AddItem "Roberto - AE1D2F"
.AddItem "Tenório - 1AS25D"
End With
End Sub
USUARIO.EXCLUIDOS 03/03/2005 12:27:01
#70935
Caraca, galera!

A ajuda de vcs me clareou "as idéias"! rsrsrsrsr
Mas acabei resolvendo da seguinte forma: [S25]

Coloquei mais um listbox, sendo esse invisível, e recebendo só as matrículas...

No evento click do list que retorna o resultado da pesquisa, com matrícula e nome, eu fiz o seguinte:

Mat = lstMat.List(lstResultado.ListIndex)

Pegando assim, a matricula da posição escolhida pelo usuário! [S27][S37][S79][S93][S85][S98]

Mas, de qq forma, vcs me ajudaram e aumentaram meu conhecimento!

Valeu mesmo! [S71][S67]
Tópico encerrado , respostas não são mais permitidas