• ベストアンサー

ACCESSのクエリーからエクセル出力

ACCESSのクエリーからエクセル出力する方法を探しています。 フォームのボタン押下⇒保存先選択画面表示⇒エクセル出力 という手順を考えていますが、 テーブルをそのまま(保存先も直書き)出力するサンプルは見つかるのですが上記のようなものは見つけられません。 どこかいいサイト、もしくはサンプルなどありませんでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • cocom32
  • ベストアンサー率58% (75/129)
回答No.1

DoCmd.OutputTo acQuery, "クエリ1", "MicrosoftExcelBiff8(*.xls)", "", False, "", 0 これでファイル保存ダイアログでると思います。

optimas
質問者

お礼

ありがとうございます ・・そのまま貼り付けたらエラーがでた。。 どうやんだ??

その他の回答 (1)

  • cocom32
  • ベストアンサー率58% (75/129)
回答No.2

>・・そのまま貼り付けたらエラーがでた。。 >どうやんだ?? DoCmdオブジェクトのOutputTo メソッドを使ってファイル名引数を 指定しなければ、ファイル保存ダイアログがでるサンプルを 提示したつもりです。 適宜、引数はあなたの作ったものに合わせて書き換えてください。 引数が判らなければ、VBエディターのVBHELPでDoCmdオブジェクトの OutputTo メソッドを検索してください。 くわしく説明されています。 エラーコードやエラーメッセージ内容記載しないと、これ以上の回答は難しいですね。

関連するQ&A

  • AccessのデータをExcelの決まったフォーマットに出力するには?

    Access2002を使っています。 社員マスターテーブルがあります。 フィールドは「社員番号」「氏名」「かな」「年齢」があります。 クエリで対象になるデータを抽出し、それをExcelの決まったフォーマットに出力させたいです。 希望はフォーム上にマクロのボタンを作ってそれをクリックするとエクセルの決まったフォーマットにデータが出力されるようにしたいのです。 お手数をおかけいたしますが、よろしくご指導ください。_(_^_

  • AccessのフォームをExcelに出力

    いつもお世話になっております。 現在、Access2003でDBを作成中です。 "テーブル1"をパラメータクエリで抽出します。"クエリ1"。 そのクエリを基にフォームを作成しています。"フォーム1"。これは抽出して印刷したり、Excelに出力するために作成しました。レポートではなく、フォームにした理由は、コマンドボタン等を配置できることからです。 Excelに出力する際のVBAでつまづいてしまいました。 DoCmd.OutputTo acOutputForm, "フォーム1", acSpreadsheetTypeExcel9 これで問題なく出力できています。が、、、 Access2007の一部のPCでこれを実行するとエラーが出ます。 原因は"OutputTo"が含まれているとエラーになるようです。 ちなみにエラーは「現在出力しようとしているオブジェクトの形式は無効です。」 「2007 Office スイート Service Pack 2」こちらをインストールすると良いそうなのですが、だめでした。 WindowsXP、Office2007はこのVBAだとエラーになります。 WindowsVista、Office2007は正常に使えました。 PCの何か設定?と考えたりもしたのですが、はっきりとした原因がわからないのでは、他の人にDBを使っていただけないので、エラーにならないVBAでいきたいです。 もうひとつ、 mFileName = InputBox("ファイル名を入力してください。") DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "フォーム1", mFileName こちらのVBAはクエリの出力だとうまくいくのですが、フォームだとだめでした。 クエリから抽出して保存すれば良いのですが、理想はこの形です。 1.フォーム1を開くと「担当者を入力」とパラメータクエリが働き、抽出結果をフォーム1に表示される。 2.[出力]ボタンを押すと、ダイアログボックスが開いてファイル名を指定して保存する。または、ダイアログボックスが開かなくても名前を指定できれば良いです。最悪、指定できなくても良いですが、原因となる、"OutputTo"を避けたVBAでいきたい。 3.mFileName = InputBox("ファイル名を入力してください。") DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "クエリ1", mFileName これだと、1.でパラメータクエリで抽出結果をフォームに表示させて、2.で[出力]ボタンを押すと、また、パラメータクエリで抽出しなければならなくなるのでできれば避けたいです。 こちらの条件でご教授お願い致します。 また、WindowsXP、Office2007でエラーが出ましたので、これを解決する方法でも良いです。 よろしくお願い致します。

  • Access2000クエリーをExcelに出力するとExcel95で作ってしまいます。

     Access2000でクエリーをExcelに出力するとファイルをExcel95バージョンで作ってしまいます。Excel2000で作ったファイルを開くとき、その出力されたファイルのデータを参照するように組むと、「ファイルが読み込めません」とメッセージが出て参照してくれません。 Access2000でクエリーをExcel2000で出力させる方法はあるのでしょうか?

  • ACCESSからエクセルへのエクスポートについて

    はじめまして。 VB2000、Office2000の環境です。 (1)複数のクエリの内容を、フォームにあるボタンを押下すると、テンプレートのエクセルを   別名保存してそのエクセルに出力する (2)同一エクセル内に用意してある計算式(出力したデータを計算)が設定されているシートに   結果を表示 ※クエリ結果は日々変わります。 ※計算式の設定してあるシートはテンプレートに用意したいと思っています。 上記をボタンを押下すると自動的に(1)、(2)が実行され、デスクトップにエクセルが出力される といった機能を作っています。今現在はクエリの内容をエクセルに手動で貼り付けています。 出力は問題なくできたのですが、その後の計算処理の実装方法が分かりません。 出力は DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "クエリ(1)", DeskTopPath() & Format(Date, "yyyymmdd") & "_シート.xls", True で行っています。 クエリは(1)~(14)あり、別シートにそれぞれ出力しています。(計14シート) 該当するシートがないと、計算式のあるシートでエラーが出てしまいますし、 頭が痛いです。 このような要件を解決する手段は何かありますでしょうか? 当方勉強を始めたばかりで行き詰っております。 どうぞよろしくお願いいたします。

  • accessで作成したクエリーをエクセルに出力する時の問題

    アクセスで作成したクエリーをエクセルに出力します。フォームに作成したコマンドボタンを押すと、マクロが起動して、マクロで指定してあるフォルダにエクセルが出力されます。出力先にすでに同名のブックがある場合、「すでファイルが存在しています。上書きしますか。」と、いうメッセージが表示されますが、このメッセージを表示せずに無条件ですでに存在するファイルに上書きをしたいと思います。 メッセージを表示しない方法はありますか。一番いいのは,マクロ内でこのメッセージの非表示を指定できるのがいいのですが。 よろしくお願いします。

  • アクセスのマクロについて教えて下さい

    当方アクセスは素人です。 1つのテーブルを基に作ったクエリとフォームがあります。 このフォームの中にボタンを作り、1つの操作で クエリの条件指定をしたり、その抽出したデータをエクセルに出力したりできるようにしたいのですが どうすればいいのかわかりません。レポートにして出力、程度ならできるんですが…。 自分ひとりなら、クエリの画面で条件指定をして開き、ツール→エクセルに出力、とするところなんですが、 もっとド素人のおじさんに「誰でもボタンひとつでできるようにしておいてほしい」と言われて困っています。 助けてください。よろしくお願いします。m(__)m

  • AccessからのExcel出力

    お世話になります。 Access2010 フォームに「Excel出力」ボタンを設置し、押すとクエリの内容を Excelに出力するツールを作成しました。 具体的には、ボタンを押すと出力先を指定するダイアログを表示し、 フォルダが選択されたら、そのパスを取得し、そこにExcelファイルが 作成されます。 出力されるファイル名は「情報_yyyymmdd.xlsx」です。 DoCmd.TransferSpreadsheet acExport, 10, "Q_Dummy", strFolder & "情報_" & Format(Date, "yyyymmdd") & ".xlsx", True, "" strFolderは、ダイアログで選択されたパス Q_Dummyは出力するクエリ <質問1> 上記にて問題無く出力はされますが、例えば今日だと「情報_20160704.xlsx」 というファイルをデスクトップに作成したとします。 で、再度デスクトップに作成しようとした場合「既に同じ名前のファイルが あります、上書きしますか?」というメッセージは表示されず そのまま上書きされてしまいます。 DoCmd.TransferSpreadsheet acExportを実行する前に、事前に出力先の パスに同ファイル名が存在していないかチェックした上で、手動で 「上書きしますか?」のメッセージを表示させる必要があるのでしょうか。 <質問2> 「そのまま上書きされてしまいます。」と書きましたが、実際には マージされてしまうようです。 例えば、2レコード抽出されたクエリの内容を出力し、そのExcelを開いて 表外に「ああああ」と入力します。 次に条件を変えて3レコード抽出されたクエリの内容を出力します。 そうすると、ちゃんと3レコードの内容が出力されていますが 表外に入力した「ああああ」は残ってます。 ※画像1 また、表内のセルに「AAAA」と入力し、そのセルに色付けした状態で、 再度出力すると、「AAAA」は上書きされますが、色は付いたままです。 ※画像2 という結果から、  ・ファイル自体が作成し直される訳ではない。  ・上書きされる部分はあくまでもクエリの内容(表内)の部分だけ   であり、書式や表外の部分については上書きされない。 ということになるかと思います。 その認識で問題ありませんでしょうか。 上書きされないように(そもそも同じファイル名にならないように) ファイル名を「情報_yyyymmdd_hhmmss.xlsx」にすればいいかとは 思うのですが。。 ご教示の程、宜しくお願い致します。

  • ACCESS Excelの出力について

    stressmanといいます。 実は、ACCESSでクエリをExcelへ出力をしたいのですが、 ここで、既存のExcelのファイルのセルを指定して出力 というこはできるのでしょうか? 選択クエリで必要な情報を抜き出し、そのクエリを 「営業報告書.xls」というファイルのあらかじめ記載して ある「顧客名」「住所」のセルに格納していきたいのです。 マクロで「コマンド実行」-「Excel出力」を使って みたのですが、新しくファイルを開き、クエリのデザイン そのままで出力されます。 宜しくお願いします。

  • Access2007のフォームとクエリについて

    Access2007、OSはwindows7での開発です。 フォームのレコードソースに自分で作ったクエリを張り付けているのですが、 コードの中でクエリを変更し、その変更した内容がフォームに反映のされ方がおかしくて困っています。 前の画面で年月を入力し、ボタンをクリックすることで次の画面へ移行し、前の画面の年月でクエリを書き換えています。クエリは書き変わっていますし、クエリを書き換えた後にフォームをリクエリしています。しかし、フォームに反映されているデータは直前に入力した年月ではなく、その1つ前の年月のデータが出てきます。 流れとしましては、 年月入力画面で年月入力⇒作成ボタン押下で時間テーブルを見て、データが無ければ新しく作る。あればそのデータを表示というながれです。 説明下手なので理解しにくいかもございませんが、ご協力よろしくお願いします。

  • Access Excel出力する保存先を指定したいのですが?

    Access初心者です。2003です。 7000ほどのデータを70ほどの抽出条件ごとにエクセルにしています。 抽出条件毎にクエリを複数作成し、各クエリが抽出したデータをマクロでエクセルに出力させています。このマクロをクエリ分作成し、別のマクロでその複数マクロをいっせいに実行させています。マクロには「コマンドの実行」で「Excelに出力」を使用しています。このアクションを使用するとマイドキュメントにエクセルが保存されてしまいます。(たまにディスクトップになります。) この保存先を指定したいのです。ダイアログではなく、設定した任意のフォルダにいっせいに収まるようにです。 「出力」アクションだと保存先のダイアログが出てくれますが、クエリの数が多いので手作業が増えてしまいます。「コマンドの実行」のExcel出力ですと手作業が無いのですが、マイドキュメントに保存されてしまいます。 私がツールを作成し、Accessを知らない人間がフォーム画面で使用するのでなるべく自動化したいと考えています。 へたくそな文ですが、どなたか助けてください。

専門家に質問してみよう