firstly, I must agree with the above question, how much data is being returned. In addition to that, can I suggest that rather than looping through the DataTable and populating the ListBox, you rather bind the data:
Dim myDataSet As New DataSet()
adpt.Fill(myDataSet, "dbo.ChkInOut")
ListBox1.DataTextField = "yourtext"
ListBox1.DataValueField = "yourvalue"
ListBox1.Datasource = myDataSet
ListBox1.DataBind()
This might just increase the performance.