如何使用RecordSource
代码从C#Windows窗体处理程序更改Microsoft Access报告的Office.Interop
属性?
我需要 以静默方式 使用AccessApp.DoCmd.OutputTo(...)
将报告另存为PDF,而无需来自Access的任何参数提示。所以我想暂时将RecordSource
更改为由表单代码定义的查询,以静默方式保存PDF报告,然后将RecordSource
更改回默认值。
我尝试了类似AccessApp.Reports["Report Name"].RecordSource
的内容,但我收到了错误!
有没有比我建议的方式更好的方法呢?
答案 0 :(得分:1)
以下适用于我(使用Access 2010测试):
accessApp.DoCmd.OpenReport(
"Report1",
Microsoft.Office.Interop.Access.AcView.acViewDesign);
Microsoft.Office.Interop.Access.Report rpt = accessApp.Reports["Report1"];
rpt.RecordSource = "SELECT * FROM Clients WHERE ID<=3";
accessApp.DoCmd.OutputTo(
Microsoft.Office.Interop.Access.AcOutputObjectType.acOutputReport,
"",
"PDF Format (*.pdf)",
@"C:\Users\Gord\Desktop\zzzTest.pdf",
false,
null,
null,
Microsoft.Office.Interop.Access.AcExportQuality.acExportQualityPrint);
// now close the report without saving the change to the RecordSource property
accessApp.DoCmd.Close(
Microsoft.Office.Interop.Access.AcObjectType.acReport,
"Report1",
Microsoft.Office.Interop.Access.AcCloseSave.acSaveNo);