2014-02-24 62 views
0

我有一個報表的報告。報告是未綁定的(它用作字母模板,僅包含純文本)。子報表中的值基於位於表單中的兩個組合框的值。訪問2010 - 報告要求您輸入參數值

因此,邏輯如下 - 當窗體(frmForReport)加載時,用戶在用於過濾數據庫的組合框中選擇值(cboSelectCompany和cboSelectPU),然後單擊確定按鈕,該按鈕用其子報表打開我的報表。從查詢中填充子報表,其中兩個字段將這些組合框作爲條件。一切工作正常(我選擇什麼,我需要在組合框,報告中的報表視圖中打開與顯示所有篩選的記錄沒有任何警告或請求報表),直到我想切換到打印預覽創建PDF。每當我這樣做時,我會看到彈出窗口輸入參數值,並引用子報表中使用的一個標準。當我關閉這個窗口時,我可以繼續下去,將它保存爲pdf或切換到報告視圖,但子報告顯示爲空白,文學消失。

這是Access 2010中下面是用作報表記錄源查詢:

SELECT qryForLetter.CrossingID, qryForLetter.DispID, qryForLetter.AgreType, qryForLetter.Legal 
FROM qryForLetter 
WHERE (((qryForLetter.Company)=[Forms]![frmForReport]![cboSelectCompany]) AND ((qryForLetter.PU)=[Forms]![frmForReport]![cboSelectPU])); 

我怎麼錯過?我如何擺脫這個彈出窗口?任何幫助是極大的讚賞。

+0

會發生什麼,如果你設計視圖中打開該查詢,然後使用您的組合框添加兩列?即「Expr1:[Forms]![frmForReport]![cboSelectCompany]」和「Expr2:[Forms]![frmForReport]![cboSelectPU]」?當您運行該查詢時,您在查詢的這兩列中顯示的組合框中選擇的值是什麼?如果不是,則需要更改組合框的「綁定列」屬性。 –

+0

當我在查詢的設計視圖中添加兩列如你所說,運行查詢,我收到彈出窗口詢問是否先進入參數值的形式!frmForReport!cboSelectCompany,然後窗體!frmForReport!cboSelectPU。如果我在兩個窗口中輸入參數,則在數據表視圖中打開查詢,所有列加上Expr1和Expr2,並根據輸入的參數過濾數據。那麼這是什麼意思? –

+0

我的不好,我應該說要刪除選擇標準行。但是,你在這兩個新專欄中有什麼價值?如果不是來自組合框的值,則需要更改「綁定列」設置。 –

回答

0

您可以嘗試使用函數替換參數[Forms]![frmForReport]![cboSelectCompany])[Forms]![frmForReport]![cboSelectPU]

在模塊的頭部創建全局變量:

Public Company As ... 
Public PU As ... 

...用正確的數據類型代替省略號...

在你的組合框更新後的事件,分配與組合關聯到相應的全局變量的值,例如:

Company = cboSelectCompany 

PU = cboSelectPU 

,並創建功能(再次更換省略號...使用正確的數據類型):

Public Function fnCompany() As ... 
    fnCompany = Company 
End Function 

Public Function fnPU() As ... 
    fnPU= PU 
End Function 

然後,數據源改變爲:

SELECT qryForLetter.CrossingID, qryForLetter.DispID, qryForLetter.AgreType, qryForLetter.Legal 
FROM qryForLetter 
WHERE (((qryForLetter.Company)=fnCompany()) AND ((qryForLetter.PU)=fnPU())); 

這具有去除的表單字段,這似乎是問題的報告的依賴性的效果。

+0

您也可以嘗試即時生成數據源查詢以硬編碼參數。如果此答案不起作用,並且您不知道如何執行此操作,則可以使用此方法創建答案。 –

+0

這太棒了!非常感謝!奇蹟般有效!我完全不知道這個選項,謝謝你提供的非常有幫助的提示。 –

+0

警告:通過VBA窗口(菜單運行/重置)重置代碼後,不要期望這個功能起作用 - 這會導致停止所有代碼並重置所有全局變量。代碼重置後,您將不得不重新選擇組合項目以使其工作。 –