質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

Q&A

解決済

3回答

51115閲覧

アクセスで作ったクエリを、エクセルに出力したい

nekomura

総合スコア132

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

0グッド

0クリップ

投稿2016/04/26 01:43

よろしくお願いいたします。

アクセスで作ったクエリを、エクセルに出力したいです。
ボタンをフォームに作り**、クリックイベント時にクエリの内容がエクセルに一覧表示されるようにしたいのですが、**
下記のコードを実行しても、エクセルには何も出力されません。

下記のコード訂正もしくは他の案、やり方など有職者の皆様にお教えいただきたく存じます。

Private Sub コマンド7_Click() DoCmd.TransferSpreadsheet acExport, 8, "Q商品別売上一覧表", "C:\Users\xxx\Desktop\新しいフォルダー.xlsx", True, "" End Sub

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

当方、Access2010の環境ですが、

DoCmd.TransferSpreadsheet acExport, 8, "M_TEST クエリ", "C:\Work\新しいフォルダー.xls", True, ""

でクエリの全内容が出力されました。

いまいちど
・クエリ自体は正しくデータ取得できているか?
⇒クエリを開いてデータが取得できているか確認

・出力フォルダーへのアクセス権はあるか?
⇒エクスプローラ等で出力フォルダを表示し、テキストファイルなどを作成してみる

・そもそもTransferSpreadsheetは実行されているか?
⇒TransferSpreadsheetの実行行にブレイクポイントを設定し、ボタンを押してみる

をご確認ください。

ちなみに引数の[8]はMicrosoft Excel 97 形式のため、拡張子「.xlsx」でもファイル出力はされますが「ファイルが壊れている」と言われ開けません。
上記ファイルも拡張子「.xls」に変更することでファイルを開くことができ、内容は正しく出力されていると思います。
ご参考までに。

投稿2016/04/26 04:18

jawa

総合スコア3013

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nekomura

2016/04/26 04:27

jawa様 度々助けて頂きありがとうございます。 このご回答を頂く直前に、まさにおっしゃっている現象が起きていることが確認できていました。 >ちなみに引数の[8]はMicrosoft Excel 97 形式のため、拡張子「.xlsx」でもファイル出力はされますが「ファイルが壊れている」と言われ開けません。 私の参考にしたサイトも、xlsとありましたが、私が勘違いでxlsxとしていたようです。 皆様、すみません。 おかげで、エクセルのデータはどこに出力されるのか、どんな名前で作られるのかやっと意味がわかりかなりすっきりです。 とてもわかりやすく勉強になったので、ベストアンサーとさせていただきます。
guest

0

Access環境がないため、確認できていないので的外れでしたらすみません。

ファイルがxlsx形式なので、初期トピックの時に「8」の箇所をacSpreadsheetTypeExcel12Xml または 10にしてはどうでしょうか?

あとすみません1点確認なのですが、上記コードで実行した場合、「EXCELファイルは作られるけれど、中身は空」という認識でお間違いないでしょうか?

投稿2016/04/26 03:24

SASAHARA

総合スコア247

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nekomura

2016/04/26 04:04

SASAHARA様 ご回答ありがとうございます。 >1点確認なのですが、上記コードで実行した場合、「EXCELファイルは作られるけれど、中身は空」という認識でお間違いないでしょうか? →いえ、そこには私が作った空のエクセルを置いています。 そこを開いても、何も起きていない…という具合です。 そもそもここから間違いなのでしょうか? よろしければ本来はどうなるのかお教えいただけないでしょうか。
nekomura

2016/04/26 04:29

SASAHARA様 ようやく意味がわかり、解決しました。 私のわかりにくい質問に丁寧にお答えくださり本当にありがとうございました。 どうかまた、よろしくお願いいたします。
SASAHARA

2016/04/26 04:52

解決いたしまして何よりです。 たぶんもうご存知だとは思いますが、一応頂きましたご質問に回答させて頂いてから去りたいと思います。 >本来はどうなるのかお教えいただけないでしょうか。 指定したEXCELファイルがなければAccessが新規で作ってくれて、あれば上書きとなったと思います。 また、ちょっと追加で調べてみたので、今後の参考になりましたら幸いです。 xlsxで出力するためには、acSpreadsheetTypeExcel12Xml(または9)にしたら出力されたのではないかと思います(参考:[マイクロソフト コミュニティ](http://answers.microsoft.com/ja-jp/office/forum/office_2010-access/docmdtransferspreadsheet/f3be77f3-7124-4a56-aeb9-8f4c8ee6290e?auth=1)) 拡張子とかバージョンとか色々面倒ですからね・・・頑張ってください!
nekomura

2016/04/26 06:07

SASAHARA様 追加の参考資料、ありがとうございます! がんばります^^
guest

0

とりあえず「8」となっている箇所を、 https://msdn.microsoft.com/ja-jp/library/office/ff196017.aspx を参考に適切なものにしてみるといかがでしょうか。

投稿2016/04/26 02:08

kaz.Suenaga

総合スコア2037

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nekomura

2016/04/26 02:14

kaz.Suenaga様 お世話になっております。 アドバイスどおり、サイトを参考にさせていただき「8」の部分を acSpreadsheetTypeExcel12 と書き直してみましたが特に変化はありません。 ファイルの場所などが悪いのでしょうか…。 五月雨式の質問で申し訳ありませんが、もしも何かお気づきの点があればご教示いただけると幸いです。
kaz.Suenaga

2016/04/26 02:46

ファイル名が「新しいフォルダー.xlsx」となっているので何か想定と異なるファイル名になっている可能性はありますね。 ファイル名を変えてみるとうまくいくような気もします(テストしてません、すみません)。
nekomura

2016/04/26 04:11

kaz.Suenaga様 たびたびのご返答に感謝いたします。 C:\Users\xxx\Desktop\新しいフォルダー は、私が新しく作ったフォルダがおいてある場所です。 フォルダの中には、空のエクセルがあります。エクセルの名前は、「新規.xlsx」です。 ご指摘の、「新しいフォルダー.xlsx」ですが、 ネットなどで本件のやり方を検索すると、フォルダのパスを書くようにあったので エクスプローラーのアドレスをコピーしました(C:\Users\xxx\Desktop\新しいフォルダー)。 しかしこれでは実行時エラーが出て、ネットのサンプルコードをコピペして末尾に「.xlsx」をつけるとエラーは出なくなりました。 しかし、結果は出ないといった具合です。 ご指摘から、何か私は根本的な間違いを犯しているような気がしますが、 ネットの資料ではこれが限界で、 ファイル名はどのように変えて記述すればよいかなど、どうか今一度答えをお教えいただけないでしょうか。
nekomura

2016/04/26 04:29

kaz.Suenaga様 ようやく意味がわかり、解決しました。 私のわかりにくい質問に丁寧にお答えくださり本当にありがとうございました。 どうかまた、よろしくお願いいたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問