2012-07-08 65 views
2

之前,我有一個名爲AdmQuery查詢,一個名爲Admform和報告稱爲AdmReport形式。在Admreport的Open_Event中,我調用了AdmForm將開始日期和結束日期輸入到兩個未綁定的框中,並使用它來執行查詢並在報表上顯示其結果。訪問報告運行的查詢執行報告打開事件

然而,這作品的問題是,當我運行報告,對報告和open事件查詢運行在一起,因爲它的形式本身與報告一起打開(與它最初沒有數據)。因此,我必須關閉報告,在表格上輸入日期,然後通過表單上的另一個按鈕預覽報告,一切都很好。

有什麼辦法只執行Report_Open_Event後延遲運行基礎查詢訪問報告?

我使用訪問2003

回答

4

打開AdmForm對話框模式迫使AdmReportReport_Open程序等,而用戶在Admform輸入日期值。

AdmForm包括一個名爲cmdOK一個命令按鈕,它的Click事件重新打開隱藏模式,它允許AdmReportReport_Open程序繼續形式。雖然AdmForm隱時現,它的文本框,它們包含將提供給AdmQuery(用於AdmReport記錄源)的值。

下面是命令按鈕的Click事件中的代碼。

Private Sub cmdOK_Click() 
    DoCmd.OpenForm Me.Name, acNormal, , , , acHidden 
End Sub 

這裏是我的版本的AdmReport後面的代碼。我使用Access 2007進行了測試,但相信它也可以與Access 2003一起使用。

Option Compare Database 
Option Explicit 

Const mcstrForm As String = "AdmForm" 

Private Sub Report_Close() 
    DoCmd.Close acForm, mcstrForm 
End Sub 

Private Sub Report_Open(Cancel As Integer) 
    DoCmd.OpenForm mcstrForm, acNormal, , , , acDialog 
End Sub 

通知中,我有一個AdmReport程序Report_Close()。目的只是關閉(現在隱藏)AdmForm

+0

它往往是離開的形式公開和隱藏的,我覺得很有用,因爲在同一日期可用於各種報告或再次打印相同的報告。當然這取決於應用程序。 – Fionnuala 2012-07-08 09:12:24

+0

謝謝你們,讓我試試這個,我會盡快回復你! – 2012-07-09 20:54:35

+0

Perfecto !!!!!! – 2012-07-18 12:54:15