在SQL查询中使用全局变量

古塔诺斯

我有一个访问项目,我在所有表单中使用一个全局变量来显示登录的用户。

Public activeUser As String

在其中一个表单上,我想根据登录者显示数据。表单上有多个字段,因此我想在整个表单中使用查询作为数据源。

现在这是我的问题:

我试图进行一个查询,使用其中的值activeUser来查找活动用户应该能够看到的所有值:

SELECT WBS_Id, 
       Verantw, 
       Commentaar 
  FROM tbl_New_WPE_User 
 WHERE UserName LIKE activeUser

为什么这不起作用?以及如何使它起作用?

汤普森(Gord Thompson)

一种选择是创建一个VBA函数以返回全局变量的值。例如

Public Function GetActiveUser() As String
    GetActiveUser = activeUser
End Function

然后,您可以在已保存的查询中使用该函数,例如

SELECT WBS_Id, 
       Verantw, 
       Commentaar 
FROM tbl_New_WPE_User 
WHERE UserName LIKE GetActiveUser()

但是,在这种特殊情况下,我倾向于摆脱全局变量,而只是调用该函数来获取当前用户(即,用于填充全局变量的代码)。我怀疑每次获取值的额外开销(例如,通过.UsernameWScript.Network对象获取属性)会非常多,并且如果确实存在问题,那么您始终可以考虑Static在函数内部使用变量缓存值。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章