Объединение комментариев @LarsTech и @jmcilhinney. Используйте параметры и преобразуйте строковое поле в реальную дату.
Private Sub OPCode(ccc As String, ddd As String)
Dim dt As New DataTable
Using cn As New OleDbConnection("Your connection string"),
cmd As New OleDbCommand("Select * From Visits WHERE CDate(VisitDate) BETWEEN @FirstDate AND @SecondDate;")
cmd.Parameters.Add("FirstDate", OleDbType.Date).Value = CDate(ccc)
cmd.Parameters.Add("SecondDate", OleDbType.Date).Value = CDate(ddd)
dt.Load(cmd.ExecuteReader)
End Using
DataGridView1.DataSource = dt
End Sub
Обратите внимание, что в Access имена параметров не имеют значения. Порядок, в котором параметры появляются в операторе sql, должен соответствовать порядку, в котором параметры добавляются в коллекцию Parameters. Я использую описательные имена для удобства чтения.