2011-08-22 6 views
1

.net에서 액세스 보고서를 사용자 PC에 저장하려면 어떻게해야합니까? 나는 Access.SaveAsAXL, Docmd.OutputTo 및 몇 가지 다른 방법을 사용하여 시도했지만 아무 소용이 없습니다. 다음은 최근 시도입니다..net의 액세스 파일 저장

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 구성 요소

에 호출에서 반환되었습니다. 고맙습니다.

답변

0

다음과 같은 코드가 내 문제를 해결했습니다. 이것을 oAccess.SaveAsAxl 코드 행 대신 위에 표시된대로 try 섹션에 배치하고 .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);