#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. Переименование модуля сразу же устранило проблему! Спасибо