После входа откройте определенную навигацию - PullRequest
0 голосов
/ 01 марта 2019

В моей базе данных MS-Access я получил LoginForm, которая проверяет, есть ли у пользователя доступ к определенной форме или нет.
Моя основная страница, называемая "NavigationsFormular", имеет 4 вкладки Look of NavigationformОбычный пользователь может получить доступ к 1-й вкладке, называемой «Bautagesbericht».
A ControlingUser может получить доступ ко 2-й, 3-й, 4-й вкладкам, но не 1-й!

Форма входа - это всплывающее окно при запуске, я не хочу менять его также на вкладку, которая была бы уродливой и неоптимальной.После успешного входа в систему он загружает навигационную форму.
Для обычного пользователя это не проблема, но для управляющей части он всегда говорит: «Нет доступа», потому что он пытался открыть вкладку, к которой у него нет прав доступа.

То есть код между прочим:

    If Globals.UserAccess(Me.Name) = False Then
MsgBox " No access!"
DoCmd.Close acForm, Me.Name
End If

Теперь моя идея состояла в том, чтобы форма входа в систему открыла форму, на которую пользователь получил разрешения, с помощью следующего кода:

If Globals.UserAccess("frm_Räumstellenerfassung") = False Then
DoCmd.BrowseTo ObjectType:=acBrowseToForm, _
ObjectName:="frm_Taetigkeitseingabe_Büro", _
PathToSubformControl:="Navigationsformular.NavigationsUnterformular>frm_Taetigkeitseingabe_Büro.NavigationsUnterformular"
DoCmd.Close acForm, Me.Name
Else
    DoCmd.OpenForm "Navigationsformular"
    DoCmd.Close acForm, Me.Name
    End If
End Sub

Проблемаявляется то, что путь не является правильным ..
Error

Hauptformular1 / MainFormular1 = "NavigationsFormular"
Unterformular1 / SubForm1 = "NavigationsUnterformular" (на немецком языке)
Formular1 = "frm_Taetigkeitseingabe_Büro"

Перепробовал все комбинации, ничего не помогло.

BTW: Кнопка в моей форме навигации с этим кодом работает.Видимо, не при попытке из другой формы.

DoCmd.BrowseTo acBrowseToForm, "frm_Taetigkeitseingabe_Büro","Navigationsformular.NavigationsUnterformular"

1 Ответ

0 голосов
/ 02 марта 2019

хорошо, я следовал за @ июньскими советами.Спасибо за это.Вот мое решение:
Отредактировал мою форму "frm_Räumstellenerfassung" (Bautagesbericht) до

Private Sub Form_Open(Cancel As Integer)
   DoCmd.GoToRecord , , acNewRec
   If Globals.UserAccess("frm_Räumstellenerfassung") = False Then
   DoCmd.BrowseTo acBrowseToForm, "frm_Taetigkeitseingabe_Büro",    "Navigationsformular.NavigationsUnterformular"
   End If
End Sub

Так что сообщение "Нет доступа" больше не появляется, и если у пользователя нет прав на просмотр этой формы, егоперейдите на 2-ю вкладку (Tätigkeitserfassung), не видя деталей 1-й формы.

Моя кнопка входа в систему просто перейдите к форме навигации

    DoCmd.OpenForm "Navigationsformular"
   DoCmd.Close acForm, Me.Name
...