通过 .net 工作打开访问报告,但不工作

Posted

技术标签:

【中文标题】通过 .net 工作打开访问报告,但不工作【英文标题】:Opening Access report via .net working, but not working 【发布时间】: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);
        
    

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

【问题讨论】:

【参考方案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

以上是关于通过 .net 工作打开访问报告,但不工作的主要内容,如果未能解决你的问题,请参考以下文章

访问报告条件或不工作

通过 android.net.NetworkCapabilities 上网检查不工作

通过通知邀请用户参加活动 - 手动工作,但不使用 Graph API

VBA编程14.操作工作簿对象

s-s-rS 报告无法通过计划订阅工作,但可以正常工作

WINDOWS 服务主进程已停止工作?