- Choco Soft - https://www.choco.org.uk/chocodb -

Accessのロックを解除したい


マイクロソフト社のAccessのお話です。

Accessはバージョンに関わらず、基本「SHIFT」+「ENTER」もしくは、「SHIFT」+「ダブルクリック」で開発モードが開きます。
ただし、予め対策をされていると開けません。結構ハマったのでメモします。

Accessで開発モードで作成した後に、「AllowBypassKey」を有効にされると普通の方法では開けなくなります。

「AllowBypassKey」を無効にする必要があるからです。

しかし、「AllowBypassKey」を無効にする為には、まず開発モード画面を開く必要があるのですが。。。。
(卵が先か、鶏が先か。。。。)

そこで調べた結果ですが、「AllowBypassKey」を無効化する為のmdbファイルもしくはaccdbファイルを別途作成します。
別途作成したファイルの標準モジュールで「AllowBypassKey」の無効化を書きます。

Access unlock

【標準モジュールの記述例をテキストでも載せておきます】
Option Compare Database

Const APath = “C:\APP\ああああシステム.accdb”‘ここに解除したいAccessファイルのフルパスを記述します。

Function ChangeProperty(strPropName As String, varPropType, _
varPropValue) As Boolean

On Error GoTo エラー

Dim dbs As Database, prp As Property
Const conPropNotFoundError = 3270
Set dbs = OpenDatabase(APath)
dbs.Properties(strPropName) = varPropValue
ChangeProperty = True
dbs.Close
Exit Function

エラー:
If Err = conPropNotFoundError Then
Set prp = dbs.CreateProperty(strPropName, varPropType, varPropValue)
dbs.Properties.Append prp
Resume Next
Else
ChangeProperty = False
dbs.Close
Exit Function
End If

End Function

Sub NoShiftKey()

If ChangeProperty(“AllowBypassKey”, dbBoolean, True) Then
MsgBox APath & ” 解除しました。”
Else
MsgBox APath & ” 失敗しました。”
End If
End Sub

実行します。