2015-05-19 29 views
0

我正在研究一個報告,該報告將通過表單允許多個過濾器和排序。我希望報告的標題能夠反映出篩選器&的選擇。根據多個條件在Access報告中插入標題

該報告可以通過3個字段進行過濾:產品類型,收到的交付成果(是/否)和項目經理。

它可以通過排序:合同號,產品類型,承包商,開始日期,完結之日&日期產品獲得

我已經得到了一些元素的工作(那些DeliverablesReceived已選定與不排序),但與其他問題一起遇到問題。

Public Function InsertTitle(strReportName As String) As String 
Dim strProduct As String 

If strReportName = "rptMasterDeliverables" Then 
    If strField = "" Then 
     InsertTitle = "All Deliverables Sorted by Project Manager" 
    ElseIf Forms!fdlgMasterDeliverables!cboDeliverableReceived Like "No" Then 
     InsertTitle = "Outstanding Deliverables Sorted by " & Left(strField, InStr(1, strField, ",") - 1) & "" 
    ElseIf Forms!fdlgMasterDeliverables!cboDeliverableReceived Like "Yes" Then  
     InsertTitle = "Received Deliverables Sorted by " & Left(strField, InStr(1, strField, ",") - 1) & "" 
    ElseIf InStr(1, strField, ",") = 0 Then          
     InsertTitle = "All Deliverables Sorted by " & strField & "" 

以上所有的工作很好,我遇到的問題與打開報表以下

ElseIf Forms!fdlgMasterDeliverables!cboDeliverableReceived Like "Yes" And Left(strField, 1) = "," Then 
     InsertTitle = "Received Deliverables sorted by Project Manager" 
    ElseIf Left(strField, 1) = "," And Forms!fdlgMasterDeliverables!cboDeliverableReceived Like "No" Then 'cboReceived 
     InsertTitle = "Outstanding Deliverables sorted by Project Manager" 
    ElseIf InStr(1, strProduct, ",") = 0 And Forms!fdlgMasterDeliverables!cboDeliverableReceived Like "No" Then 
     InsertTitle = "" & Mid([strProduct], 2, Len([strProduct])) & " Deliverables" 
    ElseIf Left(strField, 1) = "*" And InStr(1, strField, ",") = 0 Then 
     InsertTitle = "All " & Mid([strField], 2, Len([strField])) & " Deliverables sorted by " & strField & "" 
    ElseIf Left(strField, 2) = "* " And Forms!fdlgMasterDeliverables!cboDeliverableReceived Like "Yes" Then 
     InsertTitle = "Received " & Mid([strField], 3, Len([strField])) & " Deliverables sorted by Project Manager" 

的代碼是

Private Sub Report_Open(Cancel As Integer) 
Dim strProducts As String 
strField = "" 
    If CurrentProject.AllForms("fdlgMasterDeliverables").IsLoaded Then 
    If Not IsNull(Forms!fdlgMasterDeliverables!cboSort) Then 
     Me.Report.GroupLevel(0).ControlSource = Forms!fdlgMasterDeliverables!cboSort.Column(0)  
     strField = Forms!fdlgMasterDeliverables!cboSort.Column(1)         
    If Not IsNull(Forms!fdlgMasterDeliverables!cboDeliverableReceived) Then 
     strField = strField & "," & Forms!fdlgMasterDeliverables!cboDeliverableReceived.Column(1) 
    End If 
    ElseIf Not IsNull(Forms!fdlgMasterDeliverables!cboDeliverableReceived) Then   
     strField = "," & Forms!fdlgMasterDeliverables!cboDeliverableReceived.Column(1)  
    End If 
    If Not IsNull(Forms!fdlgMasterDeliverables!cboProductType) Then 
     strProduct = Forms!fdlgMasterDeliverables!cboProductType.Column(1) 
    End If 

目前可以正常工作的部分返回「優秀/收到/所有可交付成果按[選定的排序]排序「,如果沒有選擇過濾器或排序,則會正確返回」按項目經理排序的所有可交付成果「

我正試圖讓標題返回與過濾器(s)確定。例如,如果我選擇產品類型=「文檔」&產品經理=「勞拉」我希望標題讀取類似於「勞拉提供的所有文檔」的內容。如果我添加收件人=「否」,我希望它讀取「優秀的文檔交付勞拉」

如果我選擇接收=‘是’&產品類型=‘數據’,然後選擇通過合同號進行排序,我想的標題改爲‘按合同號’

接收到的數據交付

如果沒有選擇排序順序,我希望標題默認爲「....按項目經理排序」

我已經考慮轉到案例狀態但不知道從哪裏開始。任何洞察什麼是錯誤的將不勝感激

+0

我應該注意到該報告表現出色,所有的過濾器都能像排序一樣工作......它只是插入讓我瘋狂的標題 – pja

回答

0

你正在看到什麼錯誤?它看起來像你的代碼缺少部分,你可以發佈它的所有,結果你越來越vs預期的行爲?