Accessデータベースのパスワードを変更するには、排他モードで開いての操作になります。

パスワード付きファイルを渡す時に、「排他モード」の説明をするのが手間で、VBAで何とかならないかと調べていたら、できることがわかりました。

OneDriveに保存 素人作

https://1drv.ms/f/s!AojW1V4ZgPfo9XWNNEn7JqbwP1El

マクロの警告が出ます。

怪しいプログラムではありませんが、ウイルスチェックしてから開いてください。

 

下記はオリジナルではありません。ネットで公開されているもののコピペです。

 

'参照設定:Microsoft DAO Object Libraryが必要です。

Sub SetPasswd(o_pass As String, n_pass As String, file_name As String)
    Dim objDB   As Database     '
    Dim cConnect As String      '接続文字列

 

'現在のパスワード(o_pas)を含めた接続文字列の作成
    cConnect = ";DATABASE=" & file_name    'file_nameはフルパス
    cConnect = cConnect & ";PWD="
    cConnect = cConnect & o_pass
   
' データベースを排他モードでオープンする
    Set objDB = OpenDatabase(file_name, True, False, cConnect)
   
' 新しいパスワードを設定
    objDB.NewPassword o_pass, n_pass

' DBを閉じる
    objDB.Close
    Set objDB = Nothing

End Sub