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

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

ただいまの
回答率

90.47%

  • VBA

    2386questions

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

  • Access

    616questions

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

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

解決済

回答 3

投稿

  • 評価
  • クリップ 0
  • VIEW 26K+

nekomura

score 124

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

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

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

Private Sub コマンド7_Click()

  DoCmd.TransferSpreadsheet acExport, 8, "Q商品別売上一覧表", "C:\Users\xxx\Desktop\新しいフォルダー.xlsx", True, ""
End Sub
  • 気になる質問をクリップする

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 3

checkベストアンサー

+1

当方、Access2010の環境ですが、

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


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

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

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

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

をご確認ください。

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/04/26 13:27

    jawa様
    度々助けて頂きありがとうございます。
    このご回答を頂く直前に、まさにおっしゃっている現象が起きていることが確認できていました。
    >ちなみに引数の[8]はMicrosoft Excel 97 形式のため、拡張子「.xlsx」でもファイル出力はされますが「ファイルが壊れている」と言われ開けません。

    私の参考にしたサイトも、xlsとありましたが、私が勘違いでxlsxとしていたようです。
    皆様、すみません。

    おかげで、エクセルのデータはどこに出力されるのか、どんな名前で作られるのかやっと意味がわかりかなりすっきりです。
    とてもわかりやすく勉強になったので、ベストアンサーとさせていただきます。

    キャンセル

+1

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/04/26 11:14

    kaz.Suenaga様
    お世話になっております。
    アドバイスどおり、サイトを参考にさせていただき「8」の部分を

    acSpreadsheetTypeExcel12

    と書き直してみましたが特に変化はありません。
    ファイルの場所などが悪いのでしょうか…。
    五月雨式の質問で申し訳ありませんが、もしも何かお気づきの点があればご教示いただけると幸いです。

    キャンセル

  • 2016/04/26 11:46

    ファイル名が「新しいフォルダー.xlsx」となっているので何か想定と異なるファイル名になっている可能性はありますね。

    ファイル名を変えてみるとうまくいくような気もします(テストしてません、すみません)。

    キャンセル

  • 2016/04/26 13:11

    kaz.Suenaga様
    たびたびのご返答に感謝いたします。

    C:\Users\xxx\Desktop\新しいフォルダー
    は、私が新しく作ったフォルダがおいてある場所です。
    フォルダの中には、空のエクセルがあります。エクセルの名前は、「新規.xlsx」です。

    ご指摘の、「新しいフォルダー.xlsx」ですが、
    ネットなどで本件のやり方を検索すると、フォルダのパスを書くようにあったので
    エクスプローラーのアドレスをコピーしました(C:\Users\xxx\Desktop\新しいフォルダー)。
    しかしこれでは実行時エラーが出て、ネットのサンプルコードをコピペして末尾に「.xlsx」をつけるとエラーは出なくなりました。
    しかし、結果は出ないといった具合です。

    ご指摘から、何か私は根本的な間違いを犯しているような気がしますが、
    ネットの資料ではこれが限界で、
    ファイル名はどのように変えて記述すればよいかなど、どうか今一度答えをお教えいただけないでしょうか。

    キャンセル

  • 2016/04/26 13:29

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

    キャンセル

+1

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

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/04/26 13:04

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

    キャンセル

  • 2016/04/26 13:29

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

    キャンセル

  • 2016/04/26 13: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)


    拡張子とかバージョンとか色々面倒ですからね・・・頑張ってください!

    キャンセル

  • 2016/04/26 15:07

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

    キャンセル

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

  • ただいまの回答率 90.47%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る

  • VBA

    2386questions

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

  • Access

    616questions

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