How to present a MS Access Form to the end user?

2019-08-14 17:45发布

问题:

I created a form in MS Access. Unfortunately I cannot publish to access services or make a package solution

I am looking for a user friendly way to present this form to the user. So far the user will open the ms access file , click on the form and fill it out.

I would like to have a way to provide the form ONLY. I do not want the user to see all the tables and the structure . . Is there any way i can separate the form from the tables, queries etc. list ?

I split the database, and gave a fe copy to the user, but it still sucks! All those panels and stuff. Does MS Access has anything to address this issue ?

回答1:

Steps for publishing the compiled accde file and making it ready for end user:

  1. BackUp: Take backup of your accdb/mdb file
  2. Uncheck following elements from Database Options

    (Office Button=>Access Options=>Current Database) :

    • Display Navigation Pane
    • Allow Full Menus
    • Allow Default Shortcut Menus


  1. Security: To prevent anyone bypassing the start-up by using the Shift key and access the table use below code :

Public Function DisableByPass()
On Error GoTo err_proc
'Disable By Pass Key in mde/accde db
    Dim dbs As DAO.Database
    Dim prp As Property
    Dim strMDE As String

    Set dbs = CurrentDb
    With dbs
        On Error Resume Next
        strMDE = .Properties("MDE")         'If this is an MDE or ACCDE database, disable bypass key
        If Err = 0 And strMDE = "T" Then
            .Properties("AllowByPassKey") = 0
            If Err.Number = 3270 Then
                On Error GoTo err_proc
                Set prp = .CreateProperty("AllowBypassKey", dbBoolean, False)
                .Properties.Append prp
                .Properties.Refresh
            End If
        End If
    End With

exit_proc:
On Error Resume Next
    dbs.Close
    Set dbs = Nothing
    Exit Function

err_proc:
    MsgBox Err.Description
    Resume exit_proc

End Function


回答2:

The issue(s) of splitting the database, and the issues of creating a compiled accDE are NOT ONE BIT RELATED to hiding the Access interface.

100% separate question and issue.

Now, without question the above should be done for any access application, but THE ABOVE HAS ZERO TO DO WITH hiding the access interface.

Once you get the access UI hidden, then you can consider the idea of compile to accDE a good idea to PREVENT users from getting into the access UI parts.

Same goes for splitting. You really need to split. However, AGAIN the splitting has NOTHING to do with hiding the accsss interface.

So now, lets get on to hiding the access interface.

To hide all of the access interface and ONLY show the form, you need to add ONE LINE to your start up code (the forms on-load event is fine).

So, specify the form you want to display in the options.

Add this ONE LINE of VBA code to the forms on-load event.

DoCmd.ShowToolbar "Ribbon", acToolbarNo

The additional settings you require are:

[x] Display Navigation Pane <-- uncheck this box.

[x] Use Access Special Keys <-- uncheck this box

Set access to use tabbed interface, and un-check the box to display tabs.

The form MUST NOT be popup. It can be model, but NOT popup.

The result is you will ONLY see the form. This shows the result:

Now keep in mind to get back to "developer" mode, you have to exit, and then hold down the shift key during startup. When you get all of this working, then you want to compile to an accDE, and search out some answers on how to disable the shift key during startup to prevent your users from seeing the access UI.

So you ONLY need one line of code to achieve this goal. The rest is just choosing the correct settings in your application, and that one line of code on startup.