タイトル : Re: 実行中のACCESSファイル群のパス取得方法 投稿日 : 2010/11/26(Fri) 21:04 投稿者 : 魔界の仮面弁士
> エクセルやパワーポイントの場合は、試しに Excel 等では、一つのアプリ内で複数の文書を開けます。 一方、Access では一つのファイルしか開けません。 もちろん、複数のアプリケーションを起動するという事は どちらの製品でも可能ですけれどね。 > ACCESSだけ根本的にコーディングが異なるのか、 > 似たコードが見つかりません。 実際に試してはいませんが、イメージ的にはこんな感じになるのかな。 Try AccApp = GetObject(, "Access.Application") '起動済みのインスタンスを取得 Catch AccApp = CreateObject("Access.Application") '起動されていないので新規に起動 'AccApp.OpenCurrentDatabase(dbFilePath) Finally AccApp.Visible = True End Try AccDb = AccApp.CurrentDb() If AccDb Is Nothing Then MsgBox("開かれている DB はありません。") Else MsgBox(AccDb.Name) End If なお、アプリケーション自体が複数起動されている状態においては、 GetObject で単純に取得…というわけには行きません(Excel でも Access でも)。 それぞれのインスタンスを取得したいようなケースにおいては、 ROT(Running Object Table)から辿っていく必要があります。 http://eternalwindows.jp/com/moniker/moniker04.html http://msdn.microsoft.com/ja-jp/library/system.runtime.interopservices.comtypes.irunningobjecttable.enumrunning.aspx |