Используйте пользовательские функции в построителе выражений - PullRequest
0 голосов
/ 30 мая 2018

Я добавил функцию для получения логина пользователя Active Directory для БД Access с использованием VBA, но я не уверен, почему я не вижу свою функцию в списке в построителе выражений

Я определил функции, как в этот вопрос , но я не вижу функцию в построителе выражений.Я планирую использовать эту функцию, чтобы заполнить невидимый txtBox в моей форме и записать его в db.

    Public Function GetUser(Optional whatpart = "username")
        Dim returnthis As String
        If whatpart = "username" Then GetUser = Environ("USERNAME"): Exit Function
        Set objSysInfo = CreateObject("ADSystemInfo")
        Set objUser = GetObject("LDAP://" & objSysInfo.USERNAME)
        Select Case whatpart
            Case "fullname": returnthis = objUser.FullName
            Case "firstname", "givenname": returnthis = objUser.givenName
            Case "lastname": returnthis = objUser.LastName
            Case Else: returnthis = Environ("USERNAME")
        End Select
        GetUser = returnthis
    End Function

enter image description here

1 Ответ

0 голосов
/ 30 мая 2018

Я думаю, вы спрашиваете, как сделать так, чтобы пользовательские функции отображались в Expression Builder?(и поэтому не связаны с Active Directory или логинами).

Скорее всего, это простой случай либо :
- вы не сохранили модуль с тех порвставка функций в или ,
- функции не находятся в общем модуле.

Чтобы убедиться, что они сохранены:
1. Полностью закрыть доступ ( все открыть базы данных), , а затем
2. Повторно открыть базу данных, и,
3. Откройте свой модуль (из раздела «Модули» на панели навигации:

img

... и подтвердите, что ваш кодтам.

Затем попробуйте еще раз построитель выражений.


Если модуль не отображается в разделе Modules, значит, ваш код не находится в общедоступном модуле.

Обратите внимание, что не нужно использовать Expression Builder. Я фактически никогда не использовал его, но я просто попробовал его, и как только модуль с моими функциями был сохранен, они обнаружились в:

FunctionsMy database nameMy module name.


Этот снимок экрана показывает, как моя функция не была указана в построителе выражений, пока я ее не сохранил, а затем то, как я нашел ее в построителе:

image

...