DoCmd.BrowseTo acBrowseToForm MULTIPLE WHERE条件

时间:2015-08-25 18:04:25

标签: forms vba ms-access-2010

我是Access 2010 VBA的新手,但具有扎实的SQL背景。我正在尝试根据复杂过滤器从toogle按钮打开/浏览表单。

表单名为:FormSuivi

在SQL中,过滤器将如下所示:

WHERE Randomise = 'Y'  AND ActualSxDate is not null
AND datediff('d', Date(),ActualSxDate) > 140 AND DCD = 0;

在此Accessdatabase中,以下字段的类型为:

  • 随机:文字
  • ActualSxDate:日期
  • DCD:是/否 - >整数(-1/0)

目前,我所做的只是一次实施一个条件:

Private Sub Toggle25_Click()
    DoCmd.BrowseTo acBrowseToForm, "FormSuivi", , "Randomise = """ & "Y" & """" 
End Sub

如何将SQL中列出的所有条件压缩到VBA命令行中?

1 个答案:

答案 0 :(得分:0)

参数WhereCondition可以是完整的WHERE字符串,不带WHERE关键字。包括AND,括号等。
单引号'有助于保持字符串可读(与“”“结构相对)。

需要连接变量,例如

Dim S As String

S = "Randomise = '" & strRandomise & "' AND ActualSxDate is not null " & _
    "AND datediff('d', Date(),ActualSxDate) > 140 AND DCD = " & bDCD

DoCmd.BrowseTo acBrowseToForm, "FormSuivi", , S