1

我想在 where 子句中使用日期。我正在构建这样的 where 子句:

WhereCondition = WhereCondition + "DOB =" + DOB.value
DoCmd.OpenForm "InputForm", , , WhereCondition

DOB 是当前形式的文本框。我在以下行中收到类型不匹配的错误:

WhereCondition = WhereCondition + "DOB =" + DOB.value

有什么问题,我该如何解决?

4

3 回答 3

0

它有助于使用 # 传递日期:

WhereCondition = WhereCondition & "DOB =#" & DOB.value & "#"
于 2013-06-12T18:40:45.273 回答
0

首先,VBA 的连接运算符是 & 号,而不是 + 号。

所以,你应该像这样构建你的字符串:

 WhereCondition = WhereCondition & "DOB =" & DOB.value
 DoCmd.OpenForm "InputForm", , , WhereCondition

如果这不起作用,则可能需要以磅为单位包装您的日期。

  WhereCondition = WhereCondition & "DOB =#" & DOB.value & "#"
 DoCmd.OpenForm "InputForm", , , WhereCondition
于 2013-06-12T18:41:37.180 回答
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 查询。

于 2013-06-12T18:56:18.427 回答