Ms access Access中的条件查询
我在表单上有一个组合框,我想用用户名填充它 如果登录的人具有管理员角色,他们可以选择公司中的任何名称。如果用户不是管理员,它将只显示他们自己的名字 我要找的是:Ms access Access中的条件查询,ms-access,Ms Access,我在表单上有一个组合框,我想用用户名填充它 如果登录的人具有管理员角色,他们可以选择公司中的任何名称。如果用户不是管理员,它将只显示他们自己的名字 我要找的是: If @Role='Admin' then SELECT UserName FROM tblUsers ELSE SELECT UserName FROM tblUsers where UserID=@CurrentUser 我知道如何传入@Role和@CurrentUser的参数。您可以在if语句中使用DLOOKUP。为了使
If @Role='Admin' then
SELECT UserName FROM tblUsers
ELSE
SELECT UserName FROM tblUsers where UserID=@CurrentUser
我知道如何传入@Role和@CurrentUser的参数。您可以在if语句中使用DLOOKUP。为了使下面的代码正常工作,您必须有一个带有username属性的控件或表单属性
If DLookUp("role","tblUsers","UserID = '" & Me.strUserID & "'")='Admin' then
Me.cboUsers.RowSource = "SELECT UserName FROM tblUsers"
ELSE
Me.cboUsers.RowSource = "SELECT UserName FROM tblUsers where UserID= '" & Me.strUserID "'"
End If
我认为这个问题表达了你试图做什么的逻辑
PARAMETERS [current_user] Text ( 255 ), [which_role] Text ( 255 );
SELECT UserName
FROM tblUsers
WHERE
[which_role] = 'Admin'
OR UserID = [current_user];
但是,当该查询用作组合框的行源时,我不确定如何提供参数。你提到你有办法做到这一点。如果这在这里奏效,你就完了。如果没有,我建议将参数替换为表单上的文本框
SELECT UserName
FROM tblUsers
WHERE
Forms!YourFormName!txtRole = 'Admin'
OR UserID = Forms!YourFormName!txtCurrentUser;
您可以隐藏文本框,将其Visible属性设置为No,其值仍可用于查询