Hi Dennis,
The code above has the same problem as the SelectedIndices example you posted earlier. By setting SelectedItem, you are changing the contents of the SelectedItems collection to 1 item.
What you are trying to do is read what is selected, and that takes a little extra work in a multi-select situation.
When a listbox is bound to a dataset or datatable, SelectedItem is a DataRowView, which has a Row[<fieldname>] collection property.
The code below assumes that you have set the ValueMember of lstAuthors.
Dim oRow as DataRowView
For i = 0 To lstAuthors.SelectedItems.Count - 1
' Get the DataRowView of the selected item
oRow = CType(lstAuthors.SelectedItems(i) ,DataRowView)
' Get the contents of the field that holds the selected value
iT = CInt(oRow.Row(lstAuthors.ValueMember))
tta.InsertQuery(i1, iT)
Next
Hope this helped
Rick