2017-10-24 1 views
0

아래 코드를 사용하여 Access에서 Excel로 보고서를 내보내려고했습니다.Excel 내보내기에 대한 액세스 오류 2302는 선택한 파일에 출력 데이터를 저장할 수 없습니다.

pat = CurrentProject.Path 
    Set xlo = CreateObject("Excel.Application") 
    Nname = "MonthlyData" & Left(Now(), 5) 
DoCmd.OutputTo acOutputReport, "MonthlyAll", "Excel 97 - Excel 2003 Workbook (*.xls)", pat & "\" & Nname & ".xls", True 

내 시스템에서는 정상적으로 작동하지만 이후에 시도한 다른 제품에서는 작동하지 않습니다. 내 시스템에서 다른 Excel 형식으로도 내보낼 수 없습니다. 나는 다음과 같은 참조 내 시스템에서 선택한 ,

응용 프로그램에 대한

비주얼 베이직 하여 Microsoft Access 15.0 개체 라이브러리 OLE 자동화 마이크로 소프트 오피스 15.0 액세스 데이터베이스 엔진 개체 라이브러리 의 Microsoft Excel 15.0 개체 라이브러리 마이크로 소프트 오피스 15.0 개체 라이브러리

아직 이러한 참조를 확인하지 않았습니다. 그 이유가 확실하지 않습니다. 문제가 아닌 Windows 10을 사용하고 있습니다. 호환성을 검사했습니다.

답변

1

초기 바인딩 대신 후기 바인딩을 사용해야 Excel 버전/사용중인 Office 버전이 사용중인 버전에 대한 참조가 즉시 만들어 지도록 할 수 있습니다.

이 스레드가 proabably 당신은 문자열로 DoCmd.OutputTo 매개 변수 OutputFormat을 제공 Convert Early Binding VBA to Late Binding VBA : Excel to Outlook Contacts

+0

나는 그렇게했습니다. 이제 오류는 2282입니다. 현재 개체를 넣으려는 형식을 사용할 수 없습니다. 내 Excel 응용 프로그램에서 차단 된 Excel 95에서 acFormatXLS 파일을 생성하므로 "Excel 97 - Excel 2003 통합 문서 (* .xls)"를 제공했습니다. – srt

1

도움이 될 것입니다,이 특정 언어입니다.

대신 상수 acFormatXLS을 사용하십시오. 모든 시스템에서 작동해야합니다.

DoCmd.OutputTo acOutputReport, "MonthlyAll", acFormatXLS, pat & "\" & Nname & ".xls", True 

사실이 도움이되지 않습니다. 나는 상수는 숫자 값을 당연하다고 생각하지만,

Const acFormatXLS = "Microsoft Excel (*.xls)" 

참고 : 나는 당신의 형식 문자열 "Excel 97 - Excel 2003 Workbook (*.xls)" 그것을하려고하면, 그것은 그래서 아마 문제가 아닌 독일어 오피스 2010와 함께 작동합니다.


Left(Now(), 5) 지역 설정에 따라 파일 이름에 잘못된 문자가 들어있을 수 있습니다.

예 : 대신 :

Nname = "MonthlyData" & Format(Date(), "yy-mm") 
+0

acFormatXLS는 엑셀 응용 프로그램에서 차단 된 Excel95로 파일을 만듭니다. 파일 차단 설정에서 회색으로 표시되므로 차단 해제 할 수 없습니다. – srt

+0

내 시스템에 출력되는 파일 이름은 "MonthlyData24-10" – srt

+0

@srt : 편집을 참조하십시오. - 다른 시스템은 지역 날짜/시간 설정이 다를 수 있으며 날짜 형식에 파일 이름에 '/'이 포함될 수 있습니다. – Andre

관련 문제