我想在 where 子句中使用日期。我正在构建这样的 where 子句:
WhereCondition = WhereCondition + "DOB =" + DOB.value
DoCmd.OpenForm "InputForm", , , WhereCondition
DOB 是当前形式的文本框。我在以下行中收到类型不匹配的错误:
WhereCondition = WhereCondition + "DOB =" + DOB.value
有什么问题,我该如何解决?
它有助于使用 # 传递日期:
WhereCondition = WhereCondition & "DOB =#" & DOB.value & "#"
首先,VBA 的连接运算符是 & 号,而不是 + 号。
所以,你应该像这样构建你的字符串:
WhereCondition = WhereCondition & "DOB =" & DOB.value
DoCmd.OpenForm "InputForm", , , WhereCondition
如果这不起作用,则可能需要以磅为单位包装您的日期。
WhereCondition = WhereCondition & "DOB =#" & DOB.value & "#"
DoCmd.OpenForm "InputForm", , , WhereCondition
这是我使用的:
Dim mySQL as string, WStr as string
mySQL = "DELETE * FROM table"
WStr = " WHERE table.DOB = #" & Forms.*form name*.*control name*.value & "#"
'this will get the value from the form field
mySQL = mySQL & WStr
DoCmd.SetWarnings False 'Prevents message box
DoCmd.runSQL mySQL
DoCmd.SetWarnings True
显然,您不必实际运行查询,因为您可以将动态查询字符串指定为下拉列表的记录源 - 但是,这需要是 SELECT 查询。