Advertisement
1_2002 Databases/ Data Access/ DAO/ ADO #108728

Open a password protected MDB using DAO or Data control or OLE automation

Open a password protected MDB using DAO or Data control or OLE automation

AI

AI Summary: This codebase represents a historical implementation of the logic described in the metadata. Our preservation engine analyzes the structure to provide context for modern developers.

Source Code
original-source
'Use DAO:
Set MyDB = DBEngine.OpenDatabase(TheMDBNameWithFullPath,False,False,";Pwd=" & pwd)
Use Data Control
With Data1
.DatabaseName=App.Path & "\my.mdb"
.RecordSource="mytable"
.Connect=";Pwd=" & pwd
.Refresh
End With

Use OLE Automation
     Dim objAccess as Object
     '----------------------------------------------------------------------
     'This procedure sets a module-level variable, objAccess, to refer to
     'an instance of Microsoft Access. The code first tries to use GetObject
     'to refer to an instance that might already be open. If an instance is
     'not already open, the Shell() function opens a new instance and
     'specifies the user and password, based on the arguments passed to the
     'procedure.
     '
     'Calling example: OpenSecured varUser:="Admin", varPw:=""
     '----------------------------------------------------------------------
     Sub OpenSecured(Optional varUser As Variant, Optional varPw As Variant)
       Dim cmd As String
       On Error Resume Next
       Set objAccess = GetObject(, "Access.Application")
       If Err <> 0 Then 'no instance of Access is open
        If IsMissing(varUser) Then varUser = "Admin"
        cmd = "C:\Program Files\Microsoft Office\Office\MSAccess.exe"
        cmd = cmd & " /nostartup /user " & varUser
        If Not IsMissing(varPw) Then cmd = cmd & " /pwd " & varPw
        Shell pathname:=cmd, windowstyle:=6
        Do 'Wait for shelled process to finish.
         Err = 0
         Set objAccess = GetObject(, "Access.Application")
        Loop While Err <> 0
       End If
Original Comments (3)
Recovered from Wayback Machine