PEGAR UMA PARTE DA INFORMACAO DO LISBOX

MARCIOPEREIRA 22/08/2011 22:38:38
#382282
Galera, tenho a seguinte situção que preciso de vossa ajuda.

Tenho o seguinte comando SQL que alimenta uma listbox:

Select cdCargo, DsCargo From Cargo
Exemplo do Resultado dentro do listbox: 01 Comprador
02 Auxiliar Administrativo
O Resultado deste comando estou descarregando no ListBox, então o usuário vai selecionar um ou vários resultados no listbox, porém preciso pegar somente o campo cdCargo para utilizar em outra parte do programa.
Exemplo que coloquei o usuário selecionou as duas linhas no listbox,mais preciso pegar numa variável somente o 01, e 02.
Alguém poderia me ajudar?
Abraço!
MARCELO.TREZE 23/08/2011 11:25:51
#382305
Resposta escolhida
posta o código que carrega o listbox, pois nele pode estar uma solução super prática.

MARCIOPEREIRA 23/08/2011 17:54:49
#382350
Menudo obrigado, mais ainda não consegui o resultado que preciso, pois se informo 4 posições para os códigos com esta qtde de caracteres da, mais no caso de códigos com 1 ou 2 digitos ele alcança uma letra da descrição, e como preciso dos códigos para jogar numa sentença SQL não dá certo.

Marcelo-Treze segue o código que alimenta o Listbox.

wsql1 = [Ô]SELECT CdCargo, Dscargo[Ô]
wsql1 = wsql1 & [Ô] From Cargos[Ô]

tabAuxiliar1.CursorLocation = adUseClient
tabAuxiliar1.Open wsql1, dbBanco, adOpenDynamic, adLockOptimistic

frmMapaComparativo.Adodc1.ConnectionString = dbBanco
frmMapaComparativo.Adodc1.RecordSource = wsql1
frmMapaComparativo.Adodc1.Refresh


If Not (tabAuxiliar1.BOF And tabAuxiliar1.EOF) Then
Do While Not tabAuxiliar1.EOF
List1.AddItem tabAuxiliar1!cdcargo & vbTab & tabAuxiliar1!DSCARGO
tabAuxiliar1.MoveNext
Loop

If tabAuxiliar1.EOF = True Then


End If
End If

MARCELO.TREZE 24/08/2011 08:05:12
#382376
como dito veja a solução

If Not (tabAuxiliar1.BOF And tabAuxiliar1.EOF) Then
Do While Not tabAuxiliar1.EOF
List1.AddItem tabAuxiliar1!DSCARGO
List1.ItemData(List1.NewIndex) = tabAuxiliar1!cdcargo [txt-color=#007100][ô] aqui armazeno o código[/txt-color]
tabAuxiliar1.MoveNext
Loop
[txt-color=#007100] [ô] aqui tinha um if desnecessário
End If[/txt-color]



bom feito isto vc irá reparar que o listbox só conterá os nomes, o codigo dos mesmo estará armazenado no itemdata, que não é visivel.

posteriormente vc poderá capturar o código armazanado no item data usando um for, desta forma

Private Sub Command1_Click()
For f = 0 To List1.ListCount - 1
If List1.Selected(f) = True Then
MsgBox List1.ItemData(f)
End If
Next f
End Sub


acima postei para exibir os códigos conforme selecionado no listbox, mas vc poderá adaptar para fazer o que deseja bastando alterar a linha do msgbox

teste e veja se é o que deseja
MARCIOPEREIRA 24/08/2011 23:27:23
#382419
Marcelo Treze, muito obrigado!!! Show de bola deu perfeito.... vc é .
Gde Abraço!
Tópico encerrado , respostas não são mais permitidas