I think you complicating it more than it is.<br>
add both of your items in the additem and separate them with a PIPE symbol<br>
List1.AddItem vntTemp & "¦" & rsMeds!meds_cd<br>
<br>
So forget the List1.itemdata<br>
Do you not want people to see the "rsMeds!meds_cd<br>
" field?<br>
Then make the list box skinny so only the item you to see is exposed (which is the first item in the additem) the other piece is still there but invisible cause the list box is too narrow to view it.<br>
<br>
Now when you click in the list box it returns something in List1.text. <br>
So to get the "rsMeds!meds_cd" back out of list1.text <br>
<br>
use this<br>
<br>
findPipe = InStr(1, List1.Text, "¦"

<br>
frmLipidTabs.txtMeds.Text = Right(List1.Text, Len(List1.Text) - findPipe - 1)<br>
<br>
It gets the value back out of the list1.text when it is selected.<br>
<br>
See you are opening a recordset, then populating a listbox, then manipulating a listbox selection to get a value back out.<br>
<br>
Instead just connect the recordset to a DBGrid and you won't need all that code to make a listbox do what a DBgrid is designed to do in the first place (show rows and columns of data)<br>
the only code you need is when you select the item you want in a dbgrid.<br>
<br>
Private Sub DBGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)<br>
frmLipidTabs.txtMeds.Text = DBGrid1.Columns(1).Value<br>
End Sub<br>
<br>
were (0) is the first column (1) is the second<br>