You are doing a
VB Code:
  1. Do Until rst.EOF
Then inside this you are again defining
VB Code:
  1. DisplaySQL = "SELECT * FROM DataGrid"
  2.         Set rst = oSQL.Execute(DisplaySQL)
This would reset the recordset. The .Movenext would no more be effective. Don't set it again.