passing a password to an access object

Is it possible to pass a password to an access object
(dim OAccess as Access.application)
I'm using it to print reports, and I don't want anyone to have access to the database.
Who is Participating?
Éric MoreauConnect With a Mentor Senior .Net ConsultantCommented:
Try this:

Private Declare Function ShowWindow _
                Lib "user32" _
                (ByVal hwnd As Long, _
                 ByVal nCmdShow As Long _
                ) As Long
Private Const SW_HIDE = 0

Dim db As Database
Dim lngRet As Long
Dim objAccess As Access.Application

    Set objAccess = New Access.Application
    'Hide Access
    lngRet = ShowWindow(objAccess.hWndAccessApp, SW_HIDE)
    With objAccess
        'Open the database
        Set db = .Application.DBEngine.Workspaces(0).OpenDatabase("YourDatabasePath", 0, False, ";pwd=YourPassword")
        .OpenCurrentDatabase "YourDatabasePath", False
        Set db = Nothing
        .DoCmd.OpenReport "ReportName", acViewNormal
    End With


        Option Explicit
          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
          '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
          End Sub
scottd1978Author Commented:
This code still asks for a password when I try to open the database.
scottd1978Author Commented:
All Courses

From novice to tech pro — start learning today.