Further to OriginalGriff's solution and the OPs subsequent comments ...
If you set the type for field "id" to adBigInt and make sure that the recordset is sorted on that column (
rs.Sort="id"
) then it should work. Make sure your ListBox Sorted property is set to False (design time only).
The following is a silly little example that I knocked up to prove this method ...
Dim rs As New ADODB.Recordset
rs.Fields.Append "Col1", adBigInt
rs.Fields.Append "Col2", adVarChar, 30
rs.Open
rs.AddNew
rs.Fields("Col1") = 100
rs.Fields("Col2") = "text 100"
rs.AddNew
rs.Fields("Col1") = 101
rs.Fields("Col2") = "text 101"
rs.AddNew
rs.Fields("Col1") = 1
rs.Fields("Col2") = "text 1"
rs.AddNew
rs.Fields("Col1") = 2
rs.Fields("Col2") = "text 2"
rs.AddNew
rs.Fields("Col1") = 1000
rs.Fields("Col2") = "text 1000"
rs.AddNew
rs.Fields("Col1") = 200
rs.Fields("Col2") = "text 200"
rs.Sort = "Col1"
rs.MoveFirst
Do While Not rs.EOF
Me.List1.AddItem CStr(rs("Col1")) + " " + rs("Col2")
rs.MoveNext
Loop
results in output
1 text 1
2 text 2
100 text 100
101 text 101
200 text 200
1000 text 1000
[EDIT] OP is using a tool I'm not familiar with but it would seem that changing the data type of the column on the database is not an option (note to other readers - always choose the appropriate data type for the data you are storing). So instead you could try something like this (NB - At my current location I do not have VB6 so the following code is completely untested)
Dim rsSort As New ADODB.Recordset
Set rsSort = rs.Clone(adLockUnspecified)
rsSort.Fields.Append "Sorter", adBigInt
rsSort.Open
rsSort.MoveFirst
Do While Not rsSort.EOF
rsSort.Fields("Sorter") = val(rs.Fields("id")
Loop
rsSort.Sort="Sorter"
and then use rsSort to populate the ListBox. Remember to ensure that List1.Sorted = False at Design Time and to tidy up new recordset. If you try this method and you get problems try google for "DisconnectedClone"
Alternatively format the id to pad left with zeroes as the ListBox is being populated e.g.
List1.AddItem Format$(Val(rs.Fields("id")), String(5, "0")) & " " & rs.Fields("name")
which is far neater presentation anyway (means the names will be lined up on the display). If you use this method then remember to set List1.Sorted=
True