The line
com.CommandText = "select * from reg where [date] BETWEEN & dd1 & And & dd2"
is wrong. It should be
com.CommandText = "select * from reg where [date] BETWEEN #" & dd1.ToString("mm/dd/yyyy") & "# And #" & dd2.ToString("mm/dd/yyyy") & "#"
Dates need to be delimited with the '#' character in queries.
Even better would be to use a parameterised query
com.CommandText = "select * from reg where [date] BETWEEN ? And ?"
com.Parameters.AddWithValue("@StartDate", dd1)
com.Parameters.AddWithValue("@EndDate", dd2)
which would save all the fiddling about with getting the dates into the correct format in the query.