|
皆様はじめまして、へらぶなと申します。
初めての投稿になります。よろしくお願いいたします。
1.やりたいこと
ExcelからAccessを起動したい。
Access起動時には、Excelから渡された引数を元に
Access起動時に起動する初期フォームを切り替えたい。
そのとき、
a) 目的のAccessが起動していないときは、Shell関数を
用いて、コマンドライン引数を用いて起動する。
このコマンドライン引数を元に表示するフォームを切り替える。
b) 目的のAccessが起動しているときは、
OLEオートメーションを使用して、
オブジェクトにセットする。
この場合、フォームの起動はDoCmdを用いる。
2.わからないこと
a)目的のAccessが起動しているかを確認する方法。
b)起動していることが分かったとして、OLEオートメーションの
オブジェクトにどうやってセットするのか?
3.調べたこと
a)FindWindow APIを用いれば、ウィンドウ名さえわかれば
起動しているかどうか判断できる。
b)Accessの場合、Shell関数を実行した分だけプロセスが
立ち上がる(2重、3重起動が可能である)
c)2重起動を防止しつつ、かつ目的のフォームを起動するには、
OLEオートメーションが最適なのではないか?
4.制限事項
a)Access側の2重起動はしたくない。
b)Accessを閉じて開いて、ではなく表示するフォームだけ切り替えたい。
c)FindWindowでAccessのウィンドウ名を拾うとき、
開いているフォームによってウィンドウ名が異なる。
よって、FindWindowでは不適切。
以上になります。
有志の皆様、どうかご協力のほどよろしくお願いいたします。
|
|