- 締切済み
Access2002のデータを毎回EXCELで確認したい
Access2002で作成したデータを、毎回Excel2002で確認できるようにしたいのですが、一回AccessからExcelに出力後、再度そのExcelを開こうとする時に、データをリンクして開く(要は最新のデータを反映させるか?)の確認メッセージを出すことができません。どのようにしたら確認メッセージを出力することができますか?
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- mitarashi
- ベストアンサー率59% (574/965)
#1です。 自動実行マクロの記述方法は、下記をご参考にしてください。 http://www.asahi-net.or.jp/~ef2o-inue/vba_k/sub04_130_04.html 念のため、VBEの使い方も。 http://www.asahi-net.or.jp/~ef2o-inue/vba_k/sub04_040.html
- imogasi
- ベストアンサー率27% (4737/17070)
エクセルのシート側で デーー外部データの取り込みーデータの取り込みーmdbファイル指定ーテーブルの指定でエクセルにインポートし表示され 外部データツールバーの「!」(注)で現在の内容に更新されます。 これでダメですか。 (注)出てない場合は、表示ーツールバーー外部データで表示される。 ーー >確認メッセージを出すことができません このワンクリックが面倒とか 忘れやすい 自動で最新のデータにしたい のでしょうか。 上記(注)の操作をマクロの記録をとると Sub Macro1() Selection.QueryTable.Refresh BackgroundQuery:=False End Sub となるので、これをWorkBook_Open()イベントで実行し何月何日に 再インポート取得などのメッセージを出せばよい(意にそう)のですか。質問の目的・必要性は何ですか? 再実行の場合 Sub Macro1() Worksheets("Sheet2").Range("A1").QueryTable.Refresh BackgroundQuery:=False MsgBox Date & "再インポートしました" End Sub のように変えるとか。
- k_o_j_i
- ベストアンサー率72% (18/25)
AccessからExcelに出力しただけでは自動的にリンクは構築されませんね。ExcelからAccessデータベースを参照する場合の一般的方法は以下のようなものがあります。 (1)Excelで「データ」→「外部データの取り込み」→「新しいデータベースクエリ」 (2)「データベース」で「MS Access Database」を選択して「OK」 (3)「データベースの選択」で参照したいMDBファイルを選び「OK」 (4)クエリウィザードでリンクしたいテーブルとフィールド(列)を右側のボックスに入れていく (5)「次へ」を数回押し、最後に「MS Excelにデータを返す」を選択して「完了」 (6)セル選択で任意のセルを選ぶとそこに選択したテーブルのデータが反映される。 (7)データ更新は「データ」→「データの更新」で行う。自動化したければVBAマクロでその動作をWorkbook_Open()にマクロ化する ※MS OfficeのCDから「Microsoft Query」のインストールが必要な場合があります。
- goo39
- ベストアンサー率36% (13/36)
補足です。 AccessからExcelに出力してファイルを作成するのでは無くて ExcelにAccessデータを取り込みファイルを作成します。 1)Excel起動 2)Access取り込み 3)名前を付けて保存
お礼
ご回答を頂きありがとうございました。 上記の1から3は知ってましたので、既に実行できております。 また追記の質問があれば教えて下さい。
- mitarashi
- ベストアンサー率59% (574/965)
Accessのデータはデータベースクエリで読み込んでいるのでしょうか。 http://www.eurus.dti.ne.jp/~yoneyama/Excel/mous_jyo/jyo-7.html#gaibude-ta その場合は、前回読み込んだデータ上で右クリックメニューのビックリマーク(データの更新)を実行すれば、データが再読込されます。 エクセルのファイルを開いた時に、データの更新を自動でやりたければ、下記の様なコードでできると思います。(データがA1以降に貼り付けられているとして)ワークブックモジュールに記述してください。 Private Sub Workbook_Open() Sheets("Sheet1").Range("a1").QueryTable.Refresh BackgroundQuery:=False End Sub
お礼
早速の回答ありがとうございます。 !でデータの再読込ができたのですね。確認できました。 ちなみに、ワークモジュールに記述する方法を詳しく教えてもらえませんか?
補足
ご回答ありがとうございます。 ご指摘どおり「忘れやすい」ことを懸念してます。 画面上に更新メッセージが出力されるか、自動更新が可能であればと思いまして。 別途質問で、データの更新後EXCELの行列幅が変わるのを防ぐことは可能でしょうか?