Access (VBA)

Access VBAに関するフォーラムです。
  • 掲示板への投稿には会員登録(無料)が必要です。会員登録がまだの方はこちら
  • 掲示板ご利用上のお願い」に反するご記入はご遠慮ください。
  • Q&A掲示板の使い方はこちらをご覧ください
トピックに返信
質問

 
(Windows 7 Professional : Access 2010)
excelへのエクスポート、ファイルの自動保存
投稿日時: 18/05/21 23:33:10
投稿者: seint-takemaru

部署名	部署ID	社員名
生産部	 113	    佐藤一
生産部	 113	    佐藤二
品質課	 151	    加藤一
営業課  173	    加藤二
生産部	 113	    高橋一

 
上記のようなテーブルがあり、フォームにテキストボックスとコンボボックスを配置しています。
テキストボックスには部署名を入力し、入力した部署名に該当する部署IDがコンボボックスで選択できる
ように設定しています。
(例として、テキストボックスに生産部と入力したら、コンボボックスにはそれに該当する部署IDの
  113だけが表示・選択できるように設定されている)
 
<やりたいこと>
フォームに”印刷”のボタンを配置し、部署名とIDを指定した後に、印刷ボタンを押すと、
印刷と同時に、抽出したデータをexcelにエクスポートし、指定したフォルダーに自動で保存
するVBAを教えて頂きたいです。
できれば、ファイルを保存する際に、テキストボックスに入れた部署名をファイル名としたい。
(例として、生産部と指定したら、エクスポートしたファイル名も「生産部.xls」のような....)
 
VBAに詳しい方、何卒、ご教示お願いします。

回答
投稿日時: 18/05/22 09:43:03
投稿者: sk

引用:
上記のようなテーブルがあり、フォームにテキストボックスと
コンボボックスを配置しています。
テキストボックスには部署名を入力し、入力した部署名に該当する
部署IDがコンボボックスで選択できるように設定しています。
(例として、テキストボックスに生産部と入力したら、コンボボックスには
それに該当する部署IDの113だけが表示・選択できるように設定されている)

何だか冗長な操作を強いる UI 設計、という印象。
 
引用:
フォームに”印刷”のボタンを配置し、
部署名とIDを指定した後に、印刷ボタンを押すと、
印刷と同時に、抽出したデータをexcelにエクスポートし、
指定したフォルダーに自動で保存する

何を(どのオブジェクトを)印刷したいのかが不明。
 
・ここでの「抽出したデータ」とはフォームのカレントレコードのことか。
 それとも、フォームのレコードソースであるテーブルに格納されている
 レコードのうち、[部署名](または[部署ID])の値がカレントレコードの
 [部署名](または[部署ID])の値に等しい 1 件以上のレコードのことか。
 仮に前者である場合、そのテーブルの主キーはどのフィールドなのか。
 
・Excel ブックのエクスポート先となるフォルダを
 いかにして指定するのか。
 例えば、フォルダ選択ダイアログを呼び出して
 任意のフォルダをユーザーに選択させるような仕組みを
 想定しているのか。

回答
投稿日時: 18/05/22 10:04:00
投稿者: Suzu

こんにちは。
 
比較的簡単にできる方法として、
 
1. 既存ファイルとして、今から作成しようとする ファイルと同名のファイルの存在確認。
   ファイル名は Forms![フォーム名]![コントロール名] 存在した場合には削除。
 
2. エキスポート対象となるレコードを抽出しているクエリ「クエリ1」を作成
   クエリの抽出条件には、Forms![フォーム名]![コントロール名] の形式でパラメーターとして指定。
 
3. Docmd.TransferSpreadSheetメソッド を使い、特定パスへ特定ファイル名として出力。
 
4. ファイル名を Forms![フォーム名]![コントロール名] の値へと 変更する。
 
大まかな流れとしては上記の様になります。
 
さて、どこが判りませんか?

トピックに返信