2015-08-25 88 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