如何在“输入参数值”对话框中插入文本?

时间:2010-08-31 09:20:14

标签: c# ms-access

我正在尝试从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();
        }
    }
}

2 个答案:

答案 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。