在.net中保存Access文件

本文关键字:Access 文件 保存 net | 更新日期: 2023-09-27 18:06:15

如何在。net中保存访问报告到用户的pc?我试过使用Access。SaveAsAXL Docmd。OutputTo,以及其他几种方法,但都无济于事。以下是我的最新尝试。

 string dbname = "D:''filename.mdb";
        Microsoft.Office.Interop.Access.Application oAccess = new Microsoft.Office.Interop.Access.Application();
        oAccess.OpenCurrentDatabase(dbname, true);
        oAccess.Visible = true;
        var acFormatXLS = "Microsoft Excel (*.xls)";
        string id = "tblJobs.JobID=" + (Convert.ToInt32(GetMaxJobID())).ToString();
        try
        {
          oAccess.Run("BuildXAxisTimeLine", Convert.ToInt32(GetMaxJobID()));
          oAccess.SaveAsAXL(Microsoft.Office.Interop.Access.AcObjectType.acReport, "rptChartData", "D:''report.xls");
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
            //oAccess.CloseCurrentDatabase();
        }

我收到的错误是:

hresult e_fail从com组件调用中返回

任何帮助都将非常感激。谢谢你。

在.net中保存Access文件

以下代码解决了我的问题。将其放在如上所示的try部分中,而不是oAccess。SaveAsAxl行代码,并在. run行代码下面。

oAccess.DoCmd.OpenReport("rptChartData", Microsoft.Office.Interop.Access.AcView.acViewPreview, null,id);
              oAccess.DoCmd.OutputTo(Microsoft.Office.Interop.Access.AcOutputObjectType.acOutputReport, "rptChartData", acFormatXLS, "D:''reportname.pdf",false, null, null);