dim visitdates() as Date
dim tdate as new date
while not data.EOF
visitItemNumber.Append(data.IdxField(3).StringValue)
tdate.SQLDate= data.IdxField(2).StringValue.Left(10)
visitdates.append(tdate)
Your code creates ONE instance (tdate as new date) and then you set its value & append the same instance over & over
Try
dim visitdates() as Date
while not data.EOF
dim tdate as new date
visitItemNumber.Append(data.IdxField(3).StringValue)
tdate.SQLDate= data.IdxField(2).StringValue.Left(10)
visitdates.append(tdate)
wend
This creates a new instance each time & then sets the value and appends it