2013-01-12 114 views
1

我有一個包含報告的Access 2010數據庫。報告從表單中取兩個值來過濾結果。報告由主報告和分報告組成。如果主報告爲空,則顯示子報告

我有一個問題,但是如果主報告沒有返回任何記錄,即使事實上包含記錄,子報告也不會顯示出來。我已經把輸入變量的內容放到子報表中,這樣我可以看到子報表正在獲取正確的輸入變量。唉,如果主報告是空白的,它不會顯示任何內容?

如果主報告是空的,是否總是顯示子報告?

+1

您必須確保主報表查詢中始終存在至少一條記錄。也許使用'空'行表的聯合? – rene

回答

0

如果報告依賴於子窗體控件的鏈接子窗口和主窗口字段,則可以通過將鏈接主窗口字段設置爲控件的名稱而不是字段的名稱來實現此功能。例如,讓使用者說,你有一個名爲AText場,這勢必會控制AText,子窗體有鏈接的孩子和大師領域:

Link Master Fields: AText 
    Link Child Fields: AText 

這是正常的形式使用嚮導創建的。現在開始篡改。重命名控制Atext說,txtAtext,改變臨客主場:

Link Master Fields: txtAText 
    Link Child Fields: AText 

,並添加一些代碼:

Private Sub Report_NoData(Cancel As Integer) 
    Me.txtAText.ControlSource = "=""abc""" 
End Sub 

當值「ABC」是發生在記錄源的值對於子窗體,所以子窗體將填充所有「abc」記錄。顯然,你將不得不改變上述以適應你的特定數據。

+0

嗨Remou, 感謝您的意見。我在「無數據」部分添加了額外的字段和代碼。但是它會引發運行時錯誤「2191」「在打印預覽啓動後無法設置控件來源屬性」。 我使用以下來顯示報告: DoCmd.OpenReport「PlanningList」,acViewPreview,「[Meeting Ref] ='」&Me!txtSelectWeek&「'AND([List Number] ='」&Me !txtList&「')」 'DoCmd.PrintOut SendKeys「^ p」 有沒有辦法在Access試圖在打印預覽中顯示它之前設置字段? – Dean

+0

無論如何在這個網站上使用回車? 一切似乎都出現在這些評論框中的一行。 – Dean