MultipleInstances_FS()

特定のクライアントから同じデータベースが2度オープンされるのを防止するための関数を紹介します。

LAN環境でAccessのデータベースを使用する場合、一般にデータベースをフロントエンド(クエリー、フォーム、レポート、モジュール)とバックエンド(テーブル)に分離します。そして、バックエンドはファイルサーバー、フロントエンドはクライアント側にインストールします。

アプリケーションで使用する作業テーブルは、フロントエンドのデータベースに作成すればテーブルの競合は発生しません。ところが、特定のクライアントからデータベースを2度オープンすると作業テーブルが競合してシステムが正常に動作しない場合があります。

MultiInstances_FS()関数を使用すると、データベースが2度オープンされるのを防止することができます。

この関数は、アプリケーションのメインメニューの開く時/OnOpenのイベントに追加します。


構文

MultipleInstances_FS()  As Boolean  

引数

なし


戻り値

Boolean True データベースが既にオープンされている
False データベースが既にオープンされていない

使用例

アプリケーションのメインメニュー(フォーム)の開く時/OnOpenのイベントに以下のコードを追加します。

Sub Form_Open(Cancel As Integer)
  If MultipleInstances_FS() = True Then
      If MsgBox(CurrentDb.Name & " is already open@" _
          & "Do you want to open a second instance of this database?@", _
          vbYesNo Or vbQuestion Or vbDefaultButton2) = vbYes Then
          Exit Sub
      End If
      application.Quit
  End If
End Sub
  

注)
使用例をテストするには、ライブラリーデータベース(
MyLib.mda)を組み込む必要があります。