パスワードで保護された第2のデータベースを開くvbaコードを含む「ランチャー」データベースを設定しようとしています。VBAにアクセス - パスワードで保護されたデータベースを起動して既存のパスワードを閉じる
を(私はそのようにパスワードを含むVBAを読み取ることができませんACCDEするランチャーデシベルに変換することができます)私、これまでに次のコードを...持っているランチャーデシベルは、フォーム負荷を開いた
Private Sub Form_Load()
Dim acc As Access.Application
Dim db As DAO.Database
Dim strDbName As String
strDbName = "C:\database Folder\secureDB.accdb"
Set acc = New Access.Application
acc.Visible = True
Set db = acc.DBEngine.OpenDatabase(strDbName, False, False, ";PWD=swordfish")
acc.OpenCurrentDatabase (strDbName)
Application.Quit
End Sub
その後上記のコードが実行されます。それは動作しますが、問題はランチャーdbのみを閉じようとする最後の行ですが、実際には両方のデータベースを閉じます。私もシェルを使ってメインデータベースを開こうとしましたが、この方法でパスワードを渡すことはできません。
誰かが、最初のデータベースを閉じて2番目のデータベースを開いておく方法を知っていますか?
Private Sub Form_Load()
Dim acc As Access.Application
Dim db As DAO.Database
Dim strDbName As String
strDbName = "C:\database Folder\secureDB.accdb"
Set acc = New Access.Application
acc.Visible = True
acc.OpenCurrentDatabase strDbName, False, "swordfish"
Set db = acc.CurrentDb() 'Don't know why you want a reference to the db
acc.UserControl = True
Application.Quit
End Sub
関連する部分が見える滞在するDBを強制され、失われますApplicationオブジェクトへの参照とすぐに閉じてからそれを停止しacc.UserControl = True
、次のとおりです。
で見つけることができます彼らはどのようにこれを行う(私は1つがmdbloaderと呼ばれると思います)。 – BitAccesser
または 'acc.Application.Quit 'を試してください。 – BitAccesser
アクセスデータベースは逆コンパイルできるので、文字列を読み込むことができます(何らかの努力によって)。私の前のコメントで述べたように、私はそのデータベースにパスワードを暗号化したdbパスワードを保存しているので、有効なパスワードを持つユーザーだけがログインできます。 –