#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'sWareのワンポイトテクニカルアドバイスをご利用ください。3000円/件〜でご支援します。
スタンドアロンからSQL Server対応まで、オーダーメイドのシステムを短納期・安価でお届けします
 

Copyright © T'sWare All rights reserved