2012-01-30 69 views
1

我想要做的事情非常簡單,但我完全是VBA的新手。我想打開一個報告並按頁碼過濾它,這樣我就可以打開,比如說只有第2頁。我已經有了一個變量來顯示它有多少頁。我只需要知道要在DoCmd.OpenReport函數的過濾器參數中放置什麼。通過VBA在Microsoft Access中只打開一頁報告

總體目標是將每個頁面作爲單獨的PDF導出。如果我能做到以上,我可以完成其餘的工作,但如果有些事情真的很簡單,我很抱歉,我願意接受建議。謝謝。

這是Access 2010的方式。

回答

1

要打印單個頁面,您可以使用打印機對象(http://msdn.microsoft.com/en-us/library/ff837177.aspx)和PrintOut命令(http://msdn.microsoft.com/en-us/library/aa220516(v=office.11).aspx),但是,您可能會有一個自然中斷,例如客戶記錄,並且可以使用這些中斷使用OpenReport的Where參數輕鬆獲得單獨的報告。

編輯再評論

大致來說:

sSQL = "SELECT SuitableField FROM Atable ORDER BY Something" 

Set rs = CurrentDB.OpenRecordset(sSQL) 

Do While Not rs.EOF 
    DoCmd.OpenReport "TheReport", acViewNormal, , _ 
     "SuitableField='" & rs!SuitableField & "'" 
    rs.MoveNext 
Loop 

你不妨做一些工作,以確保您選擇在他們的數據報告。

+0

謝謝!我想過使用PrintOut,但我不希望提示用戶。你能否告訴我一些關於如何通過第一場分裂的細節?假設我知道第一個領域,但不知道它是什麼? – Andrew 2012-01-30 16:29:58

+0

@Drew第一場是什麼?基於什麼報表 - 查詢,表,SQL字符串? – Fionnuala 2012-01-30 16:36:51

+0

我相信第一個字段是一個字符串,報告基於查詢。我對這個數據庫沒有太多的瞭解,因爲這只是我第三週從事這項工作。當這個報告的編碼完成時,我當然不在那裏。我今天下午可以回去做一些偵察工作;我現在不在工作。 – Andrew 2012-01-30 17:48:25

相關問題