从 C# 代码访问报告

Posted

技术标签:

【中文标题】从 C# 代码访问报告【英文标题】:Reaching access Reports from C# code 【发布时间】:2018-08-20 03:22:25 【问题描述】:

我在 microsoft access 数据库中创建了一个报告

现在我想在我的项目中使用它,但我无法在网上找到任何东西

我想做的是

用数据填充报表并打印它而不在屏幕上显示任何东西

【问题讨论】:

【参考方案1】:

MS 支持网站上的How to automate Microsoft Access by using Visual C# 文章描述了如何使用 C# 自动执行 Access 操作。

请参阅打印或预览访问报告部分了解您的问题。

要预览或打印 Access 报告,请调用 OpenReport DoCmd 对象的方法。当您调用 OpenReport 时,其中一个 您传递的参数确定报告是否在 屏幕,或者是否发送到打印机:

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

根据 MS doc,使用第 4 个参数,您应该能够传递:

一个字符串表达式,它是一个有效的 SQL WHERE 子句,没有单词 WHERE

例如,如果要显示记录 ID 292 的报告,只需将 System.Reflection.Missing.Value //WhereCondition 替换为 "ID=292"

AFAIK 无法直接从 C# 代码填充报告字段。

【讨论】:

能否请您在回答中添加文章的重点?因为有可能,该文章以后会被删除 我找到了一些代码,但我无法理解其中的一部分是什么意思 * System.Reflection.Missing.Value * 我想要的只是将参数传递给报告和它会做剩下的我的意思是如果我直接从访问中双击它,它会询问我更多输入我如何从代码 oAccess.DoCmd.OpenReport("Sales", //ReportName Access.AcView.acViewPreview, / /View System.Reflection.Missing.Value, //FilterName System.Reflection.Missing.Value //WhereCondition ); 我会测试它,我会回来的

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

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

将 MS Access 报告导入 C#

从 C# 代码内部访问 F# 列表

如何从 C# 代码轮换 Azure 存储帐户访问密钥?

通过 C# 代码从 CSV 文件插入访问表

将访问报告导出为 PDF