其中条件与访问中的数据

时间:2013-06-12 18:37:02

标签: ms-access access-vba

我想在where子句中使用date。我正在构建如下的where子句:

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

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

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

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

3 个答案:

答案 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查询。