SQL Соответствие имени пользователя и заголовку - PullRequest
1 голос
/ 25 мая 2020

Я пытаюсь выяснить, какое предложение WHERE лучше всего подойдет для этой проблемы. Мне нужен запрос, чтобы показать все записи, сделанные определенным c пользователем, хранящимся в функции useUsername (), если только этот пользователь не имеет titleID = 3, который является titleID администратора. Заголовки хранятся в другой таблице под названием tblPlanner. Я пытаюсь выяснить, будет ли лучше работать предложение WHERE или теория в useUserName (). Вот код

    SELECT tblClient.clientName, tblClient.clientFirmPartner, tblClient.clientRoot, tblClientPlan.offeringType, tblClientPlan.paidBy, tblClientPlan.regionalManager, tblClientPlan.plannerUser, tblClientPlan.clientID, tblClientPlan.offeringName, tblClient.clientIA, tblClient.clientAccount, tblClientPlan.lawyerName, tblClientPlan.allInfoDate
FROM tblClient INNER JOIN tblClientPlan ON tblClient.clientID = tblClientPlan.clientID
WHERE (((tblClientPlan.plannerUser)=useUserName()));

Я новичок в этом, поэтому любая помощь будет отличной

Функция useUsername () выглядит следующим образом:

Option Compare Database
Public strUserName As String

Public Function useUsername()
    useUsername = strUserName


End Function

Она возвращает значение из формы входа в систему из глобальной переменной через

strUserName = Me.txtUser.Value

Теория, которую я сейчас думаю, выглядит следующим образом:

If (((DLookUp("tblPlanner.Title","tblPlanner","tblPlanner.userName"=useUsername()))=3)) 
then show all values, else show the above query

1 Ответ

1 голос
/ 25 мая 2020

Если вы действительно хотите использовать динамический c параметризованный запрос, рассмотрите:

WHERE tblClientPlan.plannerUser LIKE 
IIf(DLookup("titleID", "tblPlanner", "username='" & useUsername() & "'") = 3, "", useUserName()) & "*";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...