2015-11-06 68 views
0

我有一個窗體上的按鈕,在它的點擊我的報告生成。在該報告的Load事件中,我試圖獲取總頁數。我需要他們在我的數據庫中,但每當我嘗試Me.Pages,我只在Load Event中獲得1。獲取VBA ms訪問報告總頁數

我試圖與報告CurrentActivate事件做的一樣好,但我總能得到總頁數1
任何解決方案?

+0

@ Andre451任何解決方案? –

+0

我試圖爲MS Acess中的不同報告製作目錄 –

回答

1

訪問避免計算Pages,除非絕對必要,因爲這是一個昂貴的操作 - 整個報表必須提前格式化以獲得總頁數。

爲得到它,您需要在報告標題中使用ControlSource = =[Pages]的文本框控件。文本框可以隱藏。如果您目前沒有報告標題,請創建一個 - 它可以有一個很小的高度。

然後,您可以在報表標題的Format事件中讀取Me.Pages。但是您仍然必須小心,在我的示例中,報告事件觸發兩次,並且只有第二次返回實際頁面。而FormatCount不適合我。

此代碼

Private Sub Berichtskopf_Format(Cancel As Integer, FormatCount As Integer) 

    Debug.Print "Header_Format, FormatCount = " & FormatCount & ": " & Me.Pages 

End Sub 

Private Sub Report_Load() 

    Debug.Print "Load: " & Me.Pages 

End Sub 

給出了這樣的結果:

Load: 0 
Header_Format, FormatCount = 1: 0 
Header_Format, FormatCount = 1: 65 

65是正確的數字。

+0

讓我試試報告標題的這個事件 –

+0

我在名爲Report_Page()的報告事件中完成了這項工作,它給了我上面的正確頁碼,但它總是我想加載另一份報告,這是我的內容表, 我有一個場景,我有一些報告,例如A,B,C,D。我認爲要計算每個頁面的總數報告,我得到了A = 2,B = 5,C = 3,現在報告B的起始頁碼應該是3(B = A + 1),我想在數據庫中記錄這3個數據,但是你提到的事件總是觸發每件事結束 –

+0

我希望你能理解這一點,基本上我試圖讓這些報告A,B,C,D與這些報告平行。所以報告名稱和起始頁碼應該在內容表中 –