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

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

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

我想做的是

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

【问题讨论】:

    标签: c# visual-studio-2017 ms-access-2007


    【解决方案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 );
    • 我会测试它,我会回来的
    猜你喜欢
    • 2019-04-29
    • 2012-03-26
    • 1970-01-01
    • 2011-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多