電脳リアルタイム通信 ONLINE
DENNOU REALTIME TSUUSHIN ONLINE.

■VBA編

Q. …D起動時のShiftキーを無効にする方法

 フォームを自動的に開くなど、起動時の設定をしています。しかし、Shiftキーを押しながらデータベースを開くと、これらの設定が無視されてしまいます。Shiftキーを無効にする方法はないでしょうか。

A.

 データベースの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 次ページ

本サイト掲載の記事・写真等の無断での転載・複写を禁じます。
本ページは、技術評論社様のご好意により掲載許可をいただいたものです。 
技術評論社

Copyright(c)GIJYUTSU-HYORON Co., Ltd. All rights reserved.