#599 Accessがランタイムで動いているかどうかを調べるには? VBA

Accessで作ったデータベースを動かすとき、通常のAccessでは実行可能でも、ランタイム版のAccessでは実行できないことがあります。デザイン系の操作は当然ランタイム環境では期待していないはずですが、ランタイムではそれ以外にもリボン・メニューバー・ツールバーなどで操作可能なコマンドが使えないことが多々あります。そのようなコマンドの実行をVBAのプログラムから行うように場合、当然ランタイムではエラーとなって使えません。

そのようなケースでは、事前にそのデータベースが通常のAccess上で動いているのか、それともランタイムで動いているのかを確認して、処理を分岐させることができます。

それには、次のプログラム例のように、「SysCmd」メソッドに引数として定数「acSysCmdRuntime」を与え、その返り値を調べます。もしAccessランタイム環境であればTrueが、通常のAccessであればFalseが返されます。

If Not SysCmd(acSysCmdRuntime) Then
    'Accessがランタイムでない場合(=通常のAccessの場合)
    '〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
    '〜 ここで通常のAccess対応の処理を行います 〜
    '〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

Else
    'Accessがランタイムの場合
    MsgBox "ランタイムでは実行できません!", vbOKOnly + vbExclamation

End If

| Index | Prev | Next |



T'sFactory
Accessで動く生産管理DB
Ureru Express
Webで使う販売顧客管理
Access開発&アドバイス
DB開発やテクニカルアドバイス
Copyright © T'sWare All rights reserved