Microsoft Access Club >Access裏技Tips >このページ >次頁 < 前項 サイト内検索


Accessファイルの2重起動を防止する : Access裏技Tips



複数のPCから同時にAccessファイルを立ち上げたくない時があります。 ここでは、簡易にAccessファイルの2重起動を防止する技を紹介します。

2重起動の防止

  1. 基本テーブル(tbl_sample)を作成します。
  2. このテーブルに、ID(オートナンバー型)、チェック(Yes/No型)の2つのフィールドを作成します。
  3. Access起動時に開く基本フォーム(frm_sample)を作成し、チェックボックス(CKボックス)を1つ配置します。
  4. メニューバーからツールの起動時の設定にあるフォーム/ページの表示欄に、frm_sampleを指定します。
  5. 起動時に基本フォームが開くと、tbl_sampleのチェックにTrueが渡されます。
  6. 次に、他のPCからAccessが開かれると基本フォームが立ち上がると、チェックフィールドの値がTrueであるか否かを調べに行き、TrueであればAccessファイルを閉じます。
  7. 本来は、WindowsAPIを使用してチェックを行うのですが、今回は誰でも理解できる簡易な方法をご紹介します。

基本フォームの作成

  1. 基本テーブルをもとに基本フォームを作成します。
  2. フォームプロパティにある追加の許可を"いいえ"に変更します。これで、レコードの追加はできなくなりました。
  3. チェックボックスを作成します。
  4. フォームの可視プロパティを"いいえ"に切り替えます。

今回のおすすめポイント

フォームの可視プロパティ

フォーム自身の可視を"いいえ"にするためには、境界線スタイルを"なし"にする必要があります。

フォームの読み込み時イベントプロシージャの作成

フォームの読み込み時イベントプロシージャを作成します。

Private Sub Form_Load()

    Me.CKボックス = True ' --- A
    DoCmd.ShowAllRecords ' --- B

End Sub
解説
  1. フォーム上にあるCKボックスにTrueを代入します。
  2. ShowAllRecordsメソッド(全レコードの表示)を行います。これを行わないと、テーブルフィールドにデータが渡されません。

フォームの読み込み解除時イベントプロシージャの作成

フォームの読み込み解除時イベントプロシージャを作成します。

Private Sub Form_Unload(Cancel As Integer)

    Me.CKボックス = False ' --- A

End Sub
解説
  1. フォーム上にあるCKボックスにFalseを代入します。

フォームの開く時イベントプロシージャの作成

フォームの開く時イベントプロシージャを作成します。

Private Sub Form_Open(Cancel As Integer)

    Dim CK As Boolean
    Dim strmsg As String
    
    CK = DLookup("チェック", "tbl_sample", "[ID]=1") ' --- A
    strmsg = "このAccessファイルは既に起動されています。" & Chr(13) & _
            "2重起動が禁止されていますので開くことができません。"

    If CK = True Then ' --- B
        MsgBox strmsg, 16
        Cancel = True ' --- C
        Application.Quit ' --- D
    End If

End Sub
解説
  1. DLookup関数を用いて、チェックフィールドの値(True Or False)を求めます。tbl_sampleテーブルのIDフィールドが1であることに注意して下さい。
  2. 既に他のPCでAccessが起動されている場合は、変数CKの値がTrueになります。
  3. 引数CancelにTrueを設定し、開く時イベントをキャンセルします。
  4. Quitメソッドを用いて、Accessを終了します。Docmd.Quitの記述でも正解ですが、できるだけApplication.Quitを利用するようにしま す。
今回のおすすめポイント

フォームを開く時イベント

引数CancelにTrueを渡した後でも、開く時イベントは実行し続けます。 でなければ、Application.Quit が無効になってしまいますね。

動作確認

  1. Accessを終了し、共有フォルダーに移動させます。
  2. Accessを開きます。
  3. 他のPCからAccessファイルを開くと、2重起動である旨のメッセージボックスが開きます。

  1. [OK]をクリックすると、Accessが終了します。

関連ページ

ページの先頭へ 前ページへ戻る

 


Accessファイルの2重起動を防止する : Access裏技Tips


 

-Microsoft Access Club-

注目のモンスター専用サーバーからお買い得プランまで幅広くそろえています。cPanel、PLESK、WEBMINまでお任せ下さい。
注目のモンスター専用サーバーからお買い得プランまで幅広い。
cPanel、PLESK、WEBMINまでお任せ下さい。