いつも大変お世話になっております。
VBA(AccessもExcelも)初心者です。
今回はAccessのクエリをExcel(マクロ形式)にエクスポートしようとVBAを作成したところ、エラーになるためご相談申し上げました。
VBAがよく分かっていないので、お見苦しいところが多いかもしれません。
また、そもそもこのVBAでは駄目でしたり他に良い方法がございましたら、大変恐縮ですがご教授頂けますと幸いです。
前提・実現したいこと
◆前提 1
①セキュリティのかかったODBCが元のテーブル
②セキュリティは外せないので、これを元にアクションクエリ1を作成
③アクションクエリ1を実行して、テーブル1を作成
④テーブル1を元にクエリ1を作成
◆前提 2
AccessとExcelは同じフォルダに保存しています。
◆実現したいこと
フォーム1で抽出条件を絞ったクエリ1をマクロ形式で保存されたExcelの「一覧」シートにエクスポートしたいです。
もしかして、エクスポートでなくエクセルを立ち上げてコピペするVBAの方が良いのでしょうか・・・?
発生している問題・エラーメッセージ
実行時エラー'3274' 外部テーブルのフォーマットが正しくありません。
下記、ソースコードの「'エクスポート」でエラーとなります。
該当のソースコード
Option Compare Database
Private Sub cmd_Click()
Dim path As String
Dim db As DAO.Datebase
Dim rs As DAO.Recordset
path = aplication.CurrentProject.path & "\Book1.xlsm"
'エクスポート
DoCmd.TrnsferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, "クエリ1", path, True, "一覧"
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
objExcel.Workbooks.Open path
Application.Quit
End Sub
試したこと
参照元テーブルがODBCで、セキュリティが解除できないのがネックになっているようなので、別途テーブル化してみたのですが、フォーマットが正しくありませんと表示されます。
投稿後に追加で確認
path = aplication.CurrentProject.path & "\Book1.xlsm"のブック形式を「.xlsx」にしたところ、問題なくエクスポートできました。
今回は「.xlsm」へのエクスポートがしたいのですが・・・。
なお、マイクロソフトのオフィシャルページでは対応可能な形式でした。
https://docs.microsoft.com/ja-jp/office/vba/api/access.acspreadsheettype
補足情報(FW/ツールのバージョンなど)
Access2016です。
回答1件
あなたの回答
tips
プレビュー