Yo te aconsejaría utilizar una coleccion, y al cargar la listbox carga tambien los valores en la coleccion, y luego al clickear en el listbox y elegir un dato el index te dara el index de la coleccion.
Private Codigo() as String
Private i as long
Private MiDato As String
Private sub Cargar_Datos()
i=1 'No recuerdo muy bien si se empieza con 0 o con 1 :-)
.......(conexion etc...)
while not Recordset.EOF
listbox.AddItem Recordset("NombreColumna")
redim preserve codigo(i)
Codigo(i)=Recordset("NombreColumna")
Recordset.MoveNext
if Not Recordset.EOF then
i=i+1
end if
wend
.......(lo q siga...)
end sub
Private Sub ListBox_Click (Index As Integer)
MiDato=Codigo(index)
End Sub
sino a=listbox.text y juega con ello :-)