Как использовать функцию VBA в запросе

#vba #ms-access

Вопрос:

У меня есть модуль под названием GetRole «Я хочу использовать возвращаемую строковую переменную из Function WHERE предложения in Query «. Пожалуйста, ознакомьтесь с Запросом и приведенным Function ниже. Я получаю undefined function ошибку, когда пытаюсь выполнить запрос.

Мой вопрос в том, как правильно использовать функцию в запросе? Спасибо и с наилучшими пожеланиями!

То Query :

SELECT * FROM tblUsers WHERE Role = GetRole();

В GetRole модуле:

 Option Compare Database
Option Explicit

Public Function GetRole() As String
Dim rs As DAO.Recordset
Dim strUserName As String
Dim strUsers As Object
Set strUsers = CreateObject("WScript.Network")
strUserName = strUsers.UserName
Set rs = CurrentDb.OpenRecordset("SELECT [Role] FROM tblUsers WHERE [UserName] Like '" amp; strUserName amp; "'")

GetRole = rs.Fields("Role").Value

Set strUsers = Nothing
rs.Close
Set rs = Nothing

End Function
 

Ответ №1:

Не давайте модулям и функциям одно и то же имя — имя модуля переопределит имя функции, отсюда ошибка неопределенной функции.

Назовите , например mGetRole , модуль, и он должен работать.

Комментарии:

1. Переименование модуля сразу же устранило проблему! Спасибо