日期时间选择中缺少运算符

Missing operator in date time selection

 Dim rmfrom As Date
        rmfrom = DateTime.ParseExact(hapfromrm.Value, "dd/mm/yyyy", Nothing)
        Dim rmto As Date
        rmto = DateTime.ParseExact(hapfromrm.Value, "dd/mm/yyyy", Nothing)
        con.Open()
        cmd = New OleDbCommand("SELECT * FROM writes WHERE date_written BETWEEN " & rmfrom & " AND " & rmto & "", con)

它给我以下错误:

Syntax error (missing operator) in query expression 'date_written BETWEEN 1/2/2015 12:11:00 AM AND 1/2/2015 12:11:00 AM'.

有什么解决方法? 任何帮助将不胜感激。

您需要格式正确的日期字符串表达式:

cmd = New OleDbCommand("SELECT * FROM writes WHERE date_written BETWEEN #" & rmfrom.ToString("yyyy'/'MM'/'dd") & "# AND #" & rmto.ToString("yyyy'/'MM'/'dd") & "#", con)