プロが教える店舗&オフィスのセキュリティ対策術

(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)の繰り返し出来る方法を教えてください。
よろしくお願いします。

A 回答 (5件)

#2です。


*1*の部分はACCESS側の処理によって変化するのでしょうか?
変化しないのであればそれらの情報は最初からEXCELに持たせておけば宜しい
かと思いますが。
*2*については、やはり分からない・・・。
ACCESSがセットした情報って何でしょう?クエリーの結果ですか?フォーム
の内容ですか?
    • good
    • 0

#2です。


ACCESS側の処理はマクロですか?モジュールですか?
補足に書かれているINPUTとOUTPUTの意味がよくわかりません・・・。
何をEXCEL・ACCESS間でやり取りしたいのでしょうか?
Access担当情報って何ですか?

この回答への補足

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* のやり方が分からない・・・

補足日時:2006/01/13 14:48
    • good
    • 0

#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

補足日時:2006/01/13 13:21
    • good
    • 0

先に書かれた補足がさっぱりわかりません。


基本的に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ロジックを教えて下さい。

補足日時:2006/01/13 10:17
    • good
    • 0

具体的にどのような処理を行うかわかりませんが、VBAを使えば実現できませんか?

この回答への補足

言葉足らずですみません。
もちろん、VBAを使ったプログラミングで、ロジックが分からないのです・・・色々と試してみたのですが上手くいかない・・・(^^;

Access(A.mdb) input01
output01

  Excel(1.xls)


Access(B.mdb) input01(Access(A.mdb)のoutputリンク)
output02

補足日時:2006/01/12 20:19
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!