2015-08-25 53 views
0

我是Access 2010 VBA的新手,但拥有坚实的SQL背景。我试图根据复杂的过滤器打开/浏览表单。DoCmd.BrowseTo acBrowseToForm多个WHERE条件

的形式被称为:FormSuivi

在SQL中,过滤器会是这样:

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

在这种Accessdatabase,以下字段的类型有:

  • 随机化:文本
  • ActualSxDate:Date
  • DCD:是/否 - >整数(-1/0)

现在,所有我能够做到的是在同一时间实现一个条件:

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

如何在SQL中列出的所有条件挤进一个VBA命令行?

回答

0

参数WhereCondition可以是一个完整的WHERE字符串,不带WHERE关键字。包括与运算,括号等
单引号'有助于保持串可读(相对于‘’,”构造)。

变量需要被连接起来,例如

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