■VBA編
フォームを自動的に開くなど、起動時の設定をしています。しかし、Shiftキーを押しながらデータベースを開くと、これらの設定が無視されてしまいます。Shiftキーを無効にする方法はないでしょうか。
データベースのAllowBypassKeyプロパティをFalseに設定します。このプロパティは動的プロパティなので、VBAコードを使わないと設定できません。やり方は、mdbのときと、adpの場合で異なります。 以下に、これらの設定を切り替えるプログラム例を掲げます。
●mdb の場合
Sub AllowBypassMdb(blnSwitch As
Boolean) Dim dbs As DAO.Database Dim prp As
DAO.Property Dim blnExist As Boolean
Set dbs =
CurrentDb blnExist = False '
AllowBypassKeyプロパティが設定されているかどうか確認 For Each prp In
dbs.Properties If prp.Name = "AllowBypassKey"
Then blnExist = True Exit For End If Next
prp
If blnExist Then '
プロパティが存在するとき dbs.Properties("AllowBypassKey") =
blnSwitch Else Set prp =
dbs.CreateProperty("AllowBypassKey", _ dbBoolean,
blnSwitch) dbs.Properties.Append prp Set prp =
Nothing End If
Set dbs = Nothing End
Sub
|
以上のプログラムを、次のようにして、イミディエイト・ウィンドウなどから呼び出します。
Call
AllowBypassMdb(False)
|
●adp の場合
Sub AllowBypassAdp(blnSwitch As
Boolean) Dim prj As CurrentProject Dim prp As
AccessObjectProperty Dim blnExist As
Boolean
Set prj = CurrentProject blnExist =
False ' AllowBypassKeyプロパティが設定されているかどうか確認 For Each
prp In prj.Properties If prp.Name = "AllowBypassKey"
Then blnExist = True Exit For End If Next
prp
If blnExist Then '
プロパティが存在するとき prj.Properties("AllowBypassKey") =
blnSwitch Else prj.Properties.Add
"AllowBypassKey", blnSwitch End If End
Sub
|
同様に、次のようにして呼び出します。
Call
AllowBypassAdp(False)
|
|
3/4 |
|
本サイト掲載の記事・写真等の無断での転載・複写を禁じます。
本ページは、技術評論社様のご好意により掲載許可をいただいたものです。
| |