我想在where子句中使用date。我正在构建如下的where子句:
WhereCondition = WhereCondition + "DOB =" + DOB.value
DoCmd.OpenForm "InputForm", , , WhereCondition
DOB是当前形式的文本框。我收到错误,类型不匹配在以下行:
WhereCondition = WhereCondition + "DOB =" + DOB.value
问题是什么,我该如何解决?
答案 0 :(得分:0)
使用#传递日期很有帮助:
WhereCondition = WhereCondition & "DOB =#" & DOB.value & "#"
答案 1 :(得分:0)
首先,VBA的连接运算符是&符号,而不是+符号。
所以,你应该像这样建立你的字符串:
WhereCondition = WhereCondition & "DOB =" & DOB.value
DoCmd.OpenForm "InputForm", , , WhereCondition
如果这不起作用,可能需要以磅为单位包装你的日期。
WhereCondition = WhereCondition & "DOB =#" & DOB.value & "#"
DoCmd.OpenForm "InputForm", , , WhereCondition
答案 2 :(得分:0)
以下是我使用的内容:
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查询。