C# Access 报告打印代码错误

Posted

技术标签:

【中文标题】C# Access 报告打印代码错误【英文标题】:C# Access reports printing code error 【发布时间】:2015-10-12 14:50:14 【问题描述】:

我正在尝试提取报告并将其发送到打印机。 我发现了这个,但我得到了这些奇怪的对象类型错误。我认为我用错了。抱歉这个菜鸟问题,但如果我能得到一些可靠的帮助。

private void button13_Click(object sender, EventArgs e)


        DoCmd.OpenReport("Sales", //ReportName
                          objAccApp.AcView.acViewPreview, //View
                          System.Reflection.Missing.Value, //FilterName
                          System.Reflection.Missing.Value //WhereCondition);

严重性代码描述项目文件行错误CS0103名称 当前不存在“DoCmd” 上下文 AllianceERP C:\Users\dhelm.ALLMATINC.001\Documents\Visual Studio 2013\Projects\AllianceERP\AllianceERP\Form1.cs 1033

严重性代码描述项目文件行错误CS0103名称 当前不存在“AcView” 上下文 AllianceERP C:\Users\dhelm.ALLMATINC.001\Documents\Visual Studio 2013\Projects\AllianceERP\AllianceERP\Form1.cs 1035

【问题讨论】:

【参考方案1】:

DoCmd.OpenReport 是 VBA 方法,不能直接在 C# 中使用。

尝试使用Access Office Interop Objects:

Access.Application oAccess = null;

// Start a new instance of Access for Automation:
oAccess = new Access.ApplicationClass();

// Open a database in exclusive mode:
oAccess.OpenCurrentDatabase(
   "c:\\mydb.mdb", //filepath
   true //Exclusive
   );

// Preview a report named Sales:
oAccess.DoCmd.OpenReport(
   "Sales", //ReportName
   Access.AcView.acViewPreview, //View
   System.Reflection.Missing.Value, //FilterName
   System.Reflection.Missing.Value //WhereCondition
   );

【讨论】:

我用你的代码更新了我的 Access = Microsoft.Office.Interop.Access;但我收到错误严重性代码描述项目文件行错误 CS1752 无法嵌入互操作类型“ApplicationClass”。请改用适用的接口。 AllianceERP C:\Users\dhelm.ALLMATINC.001\Documents\Visual Studio 2013\Projects\AllianceERP\AllianceERP\Form1.cs 1040 检查这个:***.com/questions/2483659/…

以上是关于C# Access 报告打印代码错误的主要内容,如果未能解决你的问题,请参考以下文章

通过 C# 检查 MS Access 报告中现有标签的宽度

Access 2010:报告多打印三页

使用 VBA 将 MS Access 报告打印到 .xps 文件

打印前在 Microsoft Access 报告中运行 VBA

使用 VB.NET 打印 MS Access 报告

MS Access 报告布局