【问题标题】:Opening Access report via .net working, but not working通过 .net 工作打开访问报告,但不工作
【发布时间】:2011-08-18 17:33:37
【问题描述】:

我正在尝试通过 .net 打开访问报告。我可以使用 Access.AcView.acViewNormal 在正常模式下打开它,但这不是我想要做的,因为这会提示用户先保存然后才能查看它。我希望报告弹出,似乎 .acViewPreview 或 .acViewReport 是我应该使用的,但它没有弹出。

它确实打开了一个进程并且似乎正在打开,但我看不到报告。也许它关闭得很快。以下是我目前的代码

private void buttonResults_Click(object sender, EventArgs e)
    {
        Microsoft.Office.Interop.Access.Application oAccess = new Microsoft.Office.Interop.Access.Application();
        oAccess.OpenCurrentDatabase("D:\\path.mdb",true);

        try
        {
            oAccess.DoCmd.OpenReport("rptChartData", Microsoft.Office.Interop.Access.AcView.acViewPreview);
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }

我做错了什么??提前谢谢...

【问题讨论】:

    标签: c# .net winforms visual-studio-2010 ms-access


    【解决方案1】:

    我不知道点网。我将此代码放在 Excel 模块中,它创建了一个 Access 实例并显示了我的报告。关键似乎是 oAccess.Visible = True 如果没有设置 Visible = True,Access 会随报告一起打开(并保持打开状态),但只是不可见。

    Dim strDbFullPath As String
    Dim oAccess As Access.Application
    
    strDbFullPath = "C:\Access\webforums\whiteboard2003.mdb"
    Set oAccess = New Access.Application
    
    oAccess.Visible = True
    oAccess.OpenCurrentDatabase strDbFullPath, True
    oAccess.DoCmd.OpenReport "rptFoo", acViewPreview
    

    所以我认为这可能不是 Dot Net 问题,而是 Access 应用程序实例的标准行为。

    【讨论】:

    • 太棒了!谢谢。有没有办法将变量传递给该报告?它正在寻找表单值,但我不想让用户输入它们,而是让它自动化。是否可以?再次感谢。
    • 好的,我会提出另一个问题。
    • 实际上,我想通了。再次感谢 HansUp
    猜你喜欢
    • 1970-01-01
    • 2013-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-28
    • 2016-11-17
    • 2015-10-03
    相关资源
    最近更新 更多