2017-10-24 486 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オートメーション のMicrosoft Officeの

ビジュアル基本15.0 Accessデータベースエンジンオブジェクトライブラリ のMicrosoft Excel 15.0オブジェクトライブラリ のMicrosoft Office 15.0オブジェクトライブラリ

を持っています

私はまだこれらの参照を確認していません。 その理由がわからない場合。私は問題ではないウィンドウ10を使用しています。私は互換性を確認しました。

答えて

1

早期バインディングの代わりに遅延バインディングを使用する必要があるかもしれませんが、エクセル/オフィスのどのバージョンを使用していても、参照は使用中のバージョンのためにオンザフライで作成されます。

このスレッドは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 Workbook(* .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は、私のExcelアプリケーションでブロックされているExcel95でファイルを作成します。 ファイルブロック設定でグレー表示されているため、ブロック解除することはできません。 – srt

+0

私のシステムに入る出力ファイル名は "MonthlyData24-10" – srt

+0

@srt:編集を参照してください。 - 他のシステムでは、地域の日付/時刻の設定が異なる場合があり、日付形式に '/'が含まれている可能性があります。これはファイル名では不正です。 – Andre

関連する問題