3

我是 MS Access 2010 的初学者,请帮助我在 MS Access 2010 的 Web DB 中执行以下操作:

  1. 将“用户”表中的用户登录名“全名”保存到全局变量“用户名”中。
  2. 当用户从登录表单'login'中选择他的名字时,然后将其插入到另一个表单中的txt文件'Text57'中以将其保存到记录中。
4

1 回答 1

3

您是否有任何理由尝试在这里构建自己的登录表单?如果首先没有合法用户登录,您将无法访问或使用已发布的网站。

因此,以任何方式尝试构建您自己的登录和安全系统都没有绝对意义。用户永远无法启动您的登录表单,除非他们已经拥有合法的用户 ID 和用户登录。他们必须先输入他们的登录名和密码,然后才能启动您的表单,在该表单中您再次建议输入他们的用户 ID 和登录名!

更糟糕的是,尝试构建自己的登录系统会比整个应用程序花费更多的开发时间。更糟糕的是,您构建的最终系统将几乎没有任何安全性。

此外,由于安全系统是作为 Access Web 服务(SharePoint 或 Office 365)的一部分内置的,因此用户无法登录和使用任何应用程序,除非您已经授予他们权限并给予他们有效的登录。因此,无论如何,如果没有合法登录并经过身份验证,他们就永远无法访问此登录表单。

但是,您可以使用以下功能获取和获取当前登录的 Web 用户的使用:

当前网络用户(N)

N 的值为:

CurrentWebUser(0) (acWebUserID) This gives the users web id 
eg: 1

CurrentWebUser(1) (acWebUserName)  This give the users web user name
 eg: Albert Kallal

CurrentWebUser(2) (acWebUserLoginName) This gives the users web logon  name 
 eg:RIDES1\Administrator

CurrentWebUser(3) (acWebUserEmail) This gives the users email address
  Eg: someone@example.com

除了上述获取当前登录用户的功能外,您还可以测试您创建的安全组中的用户成员资格。该命令称为:

    IsCurrentWebUserInGroup("name of security group")

因此,不清楚您为什么要尝试构建自己的登录表单,因为您的用户都无法访问登录表单,除非他们已经获得了用户登录名和合法密码,然后才能在第一名。

此外,虽然尝试使用 VBA 在基于客户端的应用程序中构建自己的登录系统通常是可能的,但大多数时候整个事情变得不安全,而且整个事情通常是一个巨大的组合。

但是,在访问 Web 服务的情况下,由于编程语言和环境比 VBA 更受限制,因此尝试在访问 Web 服务中构建自己的登录系统比使用 VBA 应用程序这样做更糟糕。

归根结底,有大量命令可让您测试当前用户是谁,此外请记住,所有已发布的 Web 表格都已自动为您记录,并添加了一组额外的列,您可以在其中不仅可以跟踪谁在表中创建了当前记录,还可以跟踪谁最后编辑了该行数据。因此,Access Web 服务中的日志记录和跟踪非常适合参考它,因为它下降到角色级别,并且会自动为您完成。发布链接后为每个表获得的列如下:

SharePointEditor        (who edited the row record last)
SharePointAuthor        (who created the row)
SharePointModifiedDate  (time and date of row record last edit)
SharePointCreatedDate   (time and date of when row was created)

请注意,上面这意味着系统不仅会自动跟踪最后编辑行的人,还会向您显示实际创建行的人,这意味着您可以根据上述表达式过滤和构建查询,以将数据限制在给定个人。当您发布到 Web 时,上述附加行会自动添加到所有 Access 表中。

因此,尝试将当前登录的用户提取或利用到某个全局变量中几乎没有任何意义。但是,在登录时,如果您愿意,您当然可以将 CurrentWebUser 表达式设置为全局语言。

于 2012-12-02T03:14:43.310 回答