2015-06-30 74 views
1

案例:我有一個表單,有幾個輸入欄。包含在此表單中的按鈕運行查詢並根據表單輸入字段生成報告。訪問VBA多重排序標準

我已經創建了3個組合框,允許用戶按照各種標準對報表進行排序(即按Analyst名稱排序,然後按會議日期排序,然後按Ticker排序)。

Combo Box 1 = Sort_By; 
Combo Box 2 = Sort_By_2; 
Combo Box 3 = Sort_By_3 

驗證碼:

Private Sub Run_Query_Button_Click() 
If Revisit_Check.Value = False Then 
DoCmd.OpenQuery "Important Information Extracted" 
DoCmd.Close 
DoCmd.OpenReport "Important Information Extracted", acViewReport 
DoCmd.SetOrderBy Sort_By Sort_By_2 Sort_By_3 
Else 
DoCmd.OpenQuery "Revisit" 
DoCmd.Close 
DoCmd.OpenReport "Revisit_Report", acViewReport 
DoCmd.SetOrderBy Sort_By Sort_By_2 Sort_By_3 
End If 
End Sub 

此代碼返回一個語法錯誤。它不排序三個「排序」標準。如果我僅以以下方式使用條件:

Private Sub Run_Query_Button_Click() 
If Revisit_Check.Value = False Then 
DoCmd.OpenQuery "Important Information Extracted" 
DoCmd.Close 
DoCmd.OpenReport "Important Information Extracted", acViewReport 
DoCmd.SetOrderBy Sort_By 

代碼正確運行並按給定的「排序方式」值排序。如果不是使用表單字段組合框進行排序,我用的是實際字段名,例如:

Private Sub Run_Query_Button_Click() 
If Revisit_Check.Value = False Then 
DoCmd.OpenQuery "Important Information Extracted" 
DoCmd.Close 
DoCmd.OpenReport "Important Information Extracted", acViewReport 
DoCmd.SetOrderBy "Analyst, Meeting Date, Ticker" 
    ... 

一切正常爲好。爲什麼當我使用三種排序標準時,是否會出現語法錯誤?我如何分類這三個標準?

+0

你問你爲什麼你的代碼工作或.... – Newd

+0

是的,我的代碼有什麼問題?我怎樣才能使這個多標準分類工作? – lhatcher1986

+0

好的,你的文章似乎有點混淆,因爲這是錯誤的。 – Newd

回答

1

假設Sort_By是您在組合框讓你正在尋找你需要的東西更多類似這樣的價值觀:

Private Sub Run_Query_Button_Click() 
    If Revisit_Check.Value = False Then 
     DoCmd.OpenQuery "Important Information Extracted" 
     DoCmd.Close 
     DoCmd.OpenReport "Important Information Extracted", acViewReport 
     DoCmd.SetOrderBy Sort_By & ", " & Sort_By_2 & ", " & Sort_By_3 
    Else 
     DoCmd.OpenQuery "Revisit" 
     DoCmd.Close 
     DoCmd.OpenReport "Revisit_Report", acViewReport 
     DoCmd.SetOrderBy Sort_By & ", " & Sort_By_2 & ", " & Sort_By_3 
    End If 
End Sub 

通知的& ", " &,使之成爲同類型的字符串作爲"Analyst, Meeting Date, Ticker"你所說的有工作。否則,你第一次發送的排序看起來像這樣:"AnalystMeeting DateTicker"

+0

謝謝!就是這樣。 – lhatcher1986

+0

@ lhatcher1986沒問題,很高興能幫到你:-) – Newd