tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル 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

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。