- 締切済み
Excel と Access または、Access と Excel との連携処理
(1)(初期処理として)、Excel(1.xls)よりアイテムセットしたパラメータ(起動するAccessのパス名)でAccess(A.mdb)を起動する。 (2)Access(A.mdb)の自動処理が終わると、次に起動させるAccess(B.mdb)のパスパラメータをExcel(1.xls)に渡し、Access(A.mdb)を終了する。 (3)パラメータを受け取ったExcel(1.xls)は、Access(B.mdb)を起動し、処理をする。 (1)より開始して、(2)(3)の繰り返し出来る方法を教えてください。 よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
#2です。 *1*の部分はACCESS側の処理によって変化するのでしょうか? 変化しないのであればそれらの情報は最初からEXCELに持たせておけば宜しい かと思いますが。 *2*については、やはり分からない・・・。 ACCESSがセットした情報って何でしょう?クエリーの結果ですか?フォーム の内容ですか?
#2です。 ACCESS側の処理はマクロですか?モジュールですか? 補足に書かれているINPUTとOUTPUTの意味がよくわかりません・・・。 何をEXCEL・ACCESS間でやり取りしたいのでしょうか? Access担当情報って何ですか?
#2です。 こんな感じですか? Sub ファイル_OPEN() Dim objACCESS As Object Set objACCESS = CreateObject("Access.Application") objACCESS.OpenCurrentDatabase パス & "\ファイル.mdb" objACCESS.UserControl = True ~ACCESS処理~ ~ACCESSからの終了報告~ objACCESS.Quit Set objACCESS = Nothing AppActivate "microsoft ACCESS" End Sub
補足
そんな感じです! 「~ACCESSからの終了報告~」の箇所で、AccessからExcelへのパラメータ渡しの方法(ロジック)をご教示願えませんか? それとExcelからAccessへのパラメータ渡しの方法(ロジック)も教えていただけると幸いですm(_ _)m
先に書かれた補足がさっぱりわかりません。 基本的にEXCELから処理スタートなのでしょうか?2と3の処理を繰返すと 無限ループになりませんか?どこまで出来ていて何処がわからないのか 具体的に書かなければ解答し難いです。
補足
(前提) 大量データを扱うため、1つのAccessファイルで処理するとAccessファイルが壊れてしまいます(3G以上)。 上記の理由より、1つのAccessファイルで処理せずに複数のAccessファイルを繋げてアウトプットを作りたい。 (私が考えた処理フロー) 例として、日本人の職種別マスターがインプットとします(職種別マスターは膨大でオラクルデータベースにある) 先ず、一つめのAccessで (INPUT)職種別マスター(オラクルよりリンク) 抽出条件:アパレル (OUTPUT)職種別マスター(アパレル)データ 二つめのAccessで (INPUT)職種別マスター(オラクルよりリンク) 抽出条件:商社 (OUTPUT)職種別マスター(商社)データ 三つめAccessで (INPUT1)職種別マスター(アパレル)データ (一つめのAccessアウトプットよりリンク) (INPUT2)職種別マスター(商社)データ (二つめのAccessアウトプットよりリンク) 処理内容:相似情報抽出&加工 (OUTPUT)服装製造動向データ情報 上記のような処理フローで各々のAccessは出来ています。 それらのAccessをExcelで起動命令をさせたいのです。 司令塔のExcelより開始 1つめのAccessを起動させる。 ↓ 1つめのAccessが起動 処理が終わったら、司令塔Excelに、次に2つめのAccess担当情報を知らせる。 ↓ 司令塔Excel 1つめのAccessの報告を受け、1つめのAccessを終了させ、2つめのAccessを起動させる。 ↓ 2つめのAccessが起動 処理が終わったら、司令塔Excelに、次に3つめのAccess担当情報を知らせる。 ↓ 司令塔Excel 2つめのAccessの報告を受け、2つめのAccessを終了させ、3つめのAccessを起動させる。 ↓ 3つめのAccessが起動 処理が終わったら、司令塔Excelに、完了報告をする。 ↓ 司令塔Excel 3つめのAccessの報告を受け、3つめのAccessを終了させ、全ての処理が完了したメッセージをお知らせする。 こういった連携処理のVBAロジックを教えて下さい。
- Bonjin
- ベストアンサー率43% (418/971)
具体的にどのような処理を行うかわかりませんが、VBAを使えば実現できませんか?
補足
言葉足らずですみません。 もちろん、VBAを使ったプログラミングで、ロジックが分からないのです・・・色々と試してみたのですが上手くいかない・・・(^^; Access(A.mdb) input01 output01 ↓ Excel(1.xls) ↓ Access(B.mdb) input01(Access(A.mdb)のoutputリンク) output02
補足
ACCESS側の処理は、マクロです(「AUTOEXEC」を使用)。 EXCEL・ACCESS間でパラメータのやり取りをしたいのです。 Access担当情報とは、「(次に起動させる)Accessファイルのパス名情報」 Sub ファイル_OPEN() Dim objACCESS As Object Set objACCESS = CreateObject("Access.Application") objACCESS.OpenCurrentDatabase パス & "\ファイル.mdb" objACCESS.UserControl = True ~ACCESS処理~ *1* 最終時に、「(次に起動させる)Accessファイルのパス名情報」をセットする ~ACCESSからの終了報告~ *2* ココで、Excel側がAccessでセットした情報を受ける。 objACCESS.Quit Set objACCESS = Nothing AppActivate "microsoft ACCESS" End Sub *1*、*2* のやり方が分からない・・・