我正在尝试从Access报告生成PDF。报告弹出对话框“输入参数值”。我怎么用C#填充它?它甚至是reportParameter(whereCondition)吗?
using System;
using MsAccess = Microsoft.Office.Interop.Access;
namespace mdb2pdf
{
class Program
{
public static void Main(string[] args)
{
string MDBFile = @"d:\example.mdb";
string PDFFile = @"d:\example.pdf";
string reportName = @"myReport";
string reportParameter = @"[Name?] LIKE 'myName'";
MsAccess.Application app = new MsAccess.Application();
app.OpenCurrentDatabase(MDBFile, false, "");
app.DoCmd.OpenReport(reportName, Microsoft.Office.Interop.Access.AcView.acViewPreview, Type.Missing, reportParameter, MsAccess.AcWindowMode.acWindowNormal, Type.Missing);
app.DoCmd.OutputTo(MsAccess.AcOutputObjectType.acOutputReport, reportName, MsAccess.Constants.acFormatPDF, PDFFile, Type.Missing, Type.Missing, Type.Missing);
app.CloseCurrentDatabase();
}
}
}
答案 0 :(得分:0)
您可以尝试更改报表所基于的查询后面的SQL,以便在运行时包含您的条件。不确定如何通过c#来做到这一点,但这就是你如何在原生VBA中做到这一点,所以希望你可以从那里进行逆向工程
DBEngine(0)(0).QueryDefs("Query_report_is_based_on").SQL = “SELECT foo FROM tblBar WHERE foo=’Something’ ”
答案 1 :(得分:0)
我在所有excel文件中创建了VB脚本,在打开某些报告时输出PDF。