我有一个访问项目,我在所有表单中使用一个全局变量来显示登录的用户。
Public activeUser As String
在其中一个表单上,我想根据登录者显示数据。表单上有多个字段,因此我想在整个表单中使用查询作为数据源。
现在这是我的问题:
我试图进行一个查询,使用其中的值activeUser
来查找活动用户应该能够看到的所有值:
SELECT WBS_Id,
Verantw,
Commentaar
FROM tbl_New_WPE_User
WHERE UserName LIKE activeUser
为什么这不起作用?以及如何使它起作用?
一种选择是创建一个VBA函数以返回全局变量的值。例如
Public Function GetActiveUser() As String
GetActiveUser = activeUser
End Function
然后,您可以在已保存的查询中使用该函数,例如
SELECT WBS_Id,
Verantw,
Commentaar
FROM tbl_New_WPE_User
WHERE UserName LIKE GetActiveUser()
但是,在这种特殊情况下,我倾向于摆脱全局变量,而只是调用该函数来获取当前用户(即,用于填充全局变量的代码)。我怀疑每次获取值的额外开销(例如,通过.Username
从WScript.Network
对象获取属性)会非常多,并且如果确实存在问题,那么您始终可以考虑Static
在函数内部使用变量缓存值。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句