assuming the ID's are fixed length, something like this should do it:

VB Code:
  1. List2.Clear
  2.  
  3.   max_len = [b]{length of longest string that can be returned for rs!Name}[/b]
  4.  
  5.   Do While Not rs.EOF
  6. ...
  7.     List2.AddItem "   " & rs!ID & " " & vbtab _
  8.                         & formatDate & " " & vbtab _
  9.                         & FormatTime & " " & vbtab _
  10.                         & rs!Name [b]& space ((max_len-rs!Name)*3) [/b]& " " & vbtab _
  11.                         & rs!History
  12. ...
This isn't the most accurate way of doing it, but unless you only have a few rows of data it is the best you can do in a list box (you could always use a grid instead!)