打開帶有數據的報表我是相當新的訪問,VBA和報告。我想要做的是從我創建的動態查詢中獲取結果,並使用該數據打開報告。從生成的記錄集
我的基本設置,到目前爲止是由用戶輸入的數據表。在本月底,他們應該生成一份報告。爲了生成此報告,我使用VBA設置了一個表單,根據它們的輸入生成查詢。一旦運行該查詢,我將其設置爲打開報告。
目前我還沒有想出如何使用該RecordSet作爲報表的數據源。
任何人都可以請幫我這個?
打開帶有數據的報表我是相當新的訪問,VBA和報告。我想要做的是從我創建的動態查詢中獲取結果,並使用該數據打開報告。從生成的記錄集
我的基本設置,到目前爲止是由用戶輸入的數據表。在本月底,他們應該生成一份報告。爲了生成此報告,我使用VBA設置了一個表單,根據它們的輸入生成查詢。一旦運行該查詢,我將其設置爲打開報告。
目前我還沒有想出如何使用該RecordSet作爲報表的數據源。
任何人都可以請幫我這個?
我傾向於處理這種情況的方式是在Access中創建一個保存的查詢,將報告保存在該保存的查詢中,然後在打開報表之前更新QueryDef對象的.SQL
屬性。
例如,對於報告[MyReport],我會創建一個名爲[DataForMyReport]的保存查詢,其中包含一些虛擬SQL語句。然後,當需要爲給定查詢運行報告時,我只需要做
Dim cdb as DAO.Database, qdf as DAO.QueryDef
Set cdb = CurrentDb
Set qdf = cdb.QueryDefs("DataForMyReport")
qdf.SQL = strNewQueryToUse ' replace the SQL statement with the new one
Set qdf = Nothing
DoCmd.OpenReport "MyReport"
你可以做1 3件事:
1)創建一個保存查詢,並使用該查詢作爲報表的記錄源。查詢中的數據將會更改,但查詢名稱不會。報告打開時,它將提取保存的查詢的當前結果。這絕對是最簡單的方法。
2)當你打開報告,在代碼中設置的記錄源。我不認爲有必要這樣做。
3)如果您發現絕對有必要立即創建查詢,並且該查詢的名稱可能會更改,則可以將其作爲OpenArgs傳遞。但我不會推薦這個。
這是在VBA腳本中創建的查詢。這不僅僅是一個靜態查詢。 – Jim
但是,您可以**使用VBA保存它,並且每次都給它一個相同的名稱。 –
感謝您的編輯和回覆! – Jim