Как представить форму MS Access конечному пользователю?

Я создал форму в MS Access. К сожалению, я не могу publish to access services или сделать package solution

Я ищу удобный способ представить эту форму пользователю. Пока пользователь откроет файл доступа ms, щелкните form и заполните его.

Я хотел бы иметь способ предоставить ТОЛЬКО форму. Я не хочу, чтобы пользователь видел все таблицы и структуру. . Можно ли как-то отделить форму от таблиц, запросов и т. д. списка?

Я разделил базу данных и дал пользователю fe копию, но это все еще отстой! Все эти панели и прочее. Есть ли у MS Access что-нибудь для решения этой проблемы?


person Buras    schedule 05.09.2014    source источник
comment
безопасность — одна из самых слабых сторон Access. вы можете скомпилировать проект в .accde и переименовать его в accdr. Файл Runtime Access не отображает панель навигации. (НАСКОЛЬКО МНЕ ИЗВЕСТНО)   -  person Krish    schedule 08.09.2014
comment
В базе есть свойства, которые будут скрывать панели: посмотрите на изменение StartupShowDBWindow, AllowBuiltinToolbars, AllowBreakIntoCode, AllowSpecialKeys, AllowBypassKey. Их можно использовать для обеспечения более жестко контролируемого внешнего интерфейса.   -  person citizenkong    schedule 09.09.2014
comment
Эти параметры также доступны в Tools/Startup.   -  person citizenkong    schedule 09.09.2014


Ответы (2)


Проблема (ы) разделения базы данных и проблемы создания скомпилированного accDE НИ НА ОДИН БИТ ОТНОСЯТСЯ к сокрытию интерфейса Access.

100% отдельный вопрос и вопрос.

Теперь, без сомнения, вышеизложенное должно быть сделано для любого приложения доступа, но ВЫШЕ ВЫШЕ НЕ ИМЕЕТ НУЛЕВОЙ СВЯЗИ С сокрытием интерфейса доступа.

Как только вы скроете пользовательский интерфейс доступа, вы можете рассмотреть идею компиляции для accDE, которая является хорошей идеей, чтобы ПРЕДОТВРАТИТЬ пользователей от доступа к частям пользовательского интерфейса доступа.

То же самое касается разделения. Вам действительно нужно расстаться. Однако, СНОВА разделение не имеет НИЧЕГО общего с сокрытием интерфейса accsss.

Итак, теперь давайте перейдем к сокрытию интерфейса доступа.

Чтобы скрыть весь интерфейс доступа и показать ТОЛЬКО форму, вам нужно добавить ОДНУ СТРОКУ к вашему коду запуска (событие формы при загрузке в порядке).

Итак, укажите форму, которую хотите отобразить в опциях.

Добавьте эту ОДНУ СТРОКУ кода VBA в событие загрузки формы.

DoCmd.ShowToolbar "Ribbon", acToolbarNo

Дополнительные настройки, которые вам потребуются:

[x] Показать панель навигации ‹-- снимите этот флажок.

[x] Использовать специальные клавиши доступа ‹ -- снимите этот флажок

Установите доступ для использования интерфейса с вкладками и снимите флажок, чтобы отображать вкладки.

Форма НЕ ДОЛЖНА быть всплывающей. Это может быть модель, но НЕ всплывающее окно.

В результате вы будете видеть ТОЛЬКО форму. Это показывает результат:

введите здесь описание изображения

Теперь имейте в виду, чтобы вернуться в режим «разработчика», вам нужно выйти, а затем удерживать нажатой клавишу Shift во время запуска. Когда вы все это заработаете, вы захотите скомпилировать в accDE и найти ответы на вопросы о том, как отключить клавишу Shift во время запуска, чтобы ваши пользователи не видели пользовательский интерфейс доступа.

Таким образом, вам нужна ТОЛЬКО одна строка кода для достижения этой цели. Остальное — это просто выбор правильных настроек в вашем приложении и эта одна строка кода при запуске.

person Albert D. Kallal    schedule 13.01.2019

Шаги для публикации скомпилированного файла accde и его подготовки для конечного пользователя:

  1. BackUp: создайте резервную копию вашего файла accdb/mdb.
  2. Снимите отметку со следующих элементов в параметрах базы данных.

    (Кнопка Office => Параметры доступа => Текущая база данных):

    • Display Navigation Pane
    • Разрешить полные меню
    • Разрешить контекстные меню по умолчанию

введите здесь описание изображения


  1. Безопасность: чтобы никто не мог обойти запуск с помощью клавиши Shift и получить доступ к таблице, используйте следующий код:

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
person Santosh    schedule 12.01.2019