Ms access 在Microsoft Access 2013中,如何访问当前ODBC连接的用户名?

Ms access 在Microsoft Access 2013中,如何访问当前ODBC连接的用户名?,ms-access,ms-access-2013,Ms Access,Ms Access 2013,我正在Microsoft Access 2013中构建一个系统,该系统使用MySQL作为后端。我想要一个表单,其中当前登录到MySQL数据库的用户的用户名是输入字段的默认值。我尝试使用CurrentUser函数来执行此操作,但似乎总是返回Admin 所以我想这里有两个问题: 有没有办法从access 2013中访问登录到MySQL服务器的用户的用户名 如果不是,如何控制CurrentUser的用户名?这是非常重要的,在这个系统中,我能够区分不同的用户的系统,并不是每个人都只是显示为管理员 有可能

我正在Microsoft Access 2013中构建一个系统,该系统使用MySQL作为后端。我想要一个表单,其中当前登录到MySQL数据库的用户的用户名是输入字段的默认值。我尝试使用CurrentUser函数来执行此操作,但似乎总是返回Admin

所以我想这里有两个问题:

有没有办法从access 2013中访问登录到MySQL服务器的用户的用户名

如果不是,如何控制CurrentUser的用户名?这是非常重要的,在这个系统中,我能够区分不同的用户的系统,并不是每个人都只是显示为管理员

有可能有更好的方法来完成我的要求,我甚至不知道该问什么问题,如果是这样的话,请告诉我


谢谢

在Access中创建一个传递查询,该查询使用到MySQL的ODBC连接,并向MySQL询问当前用户的名称

选择当前用户; 该查询将按原样执行,这意味着服务器不涉及Access db引擎,查询结果将在Access中可用


VBA CurrentUser函数检索访问安全帐户名。除非您使用的是ULS用户级安全(仅适用于较旧的MDB数据库格式),否则安全帐户将始终为Admin。因此,它通常没有用处,而且对于您在这里所需要的东西肯定没有用处。

为什么要专门查找ODBC连接的用户名?如果您只想知道windows用户名,可以尝试使用msgbox Environ$Username。我想我会使用不同的用户名/密码设置我的用户以连接到MySQL服务器,访问数据库将根据他们的用户名和相应的权限进行自定义。基本上,我想找出一些不依赖SharePoint的用户管理形式,我正在尝试设置SharePoint,但由于缺乏经验和资源,这非常困难。非常感谢!我觉得我已经非常接近了,我创建了如您所描述的传递查询。但是,每次我运行它时,它都会提示我选择数据源,然后我必须输入用户名和密码。当我这样做时,它只返回我当时登录时使用的用户名,但我真正想做的是让它返回最初用于启动到链接表的连接的用户名。有办法吗?我希望这是有意义的。在设计视图中打开pass-thru,然后打开查询的属性表。检查ODBC Connect Str属性,并将其与ODBC链接表的属性进行比较。如果它们是一样的,我不明白为什么你会被反复询问这些信息。越来越近了。ODBC Connect Str与我的链接表中列出的完全不同,因此我更新了它,使其具有端口信息的所有内容,现在它不再提示我输入连接信息。我的传递查询称为CurrentUser,SQL为SELECT CURRENT_USER AS Expr1;,在我的表单中,我将默认值设置为=[CurrentUser]![Expr1],但当我尝试添加新记录时,它只是显示为错误。知道我现在做错了什么吗?非常感谢你迄今为止的帮助!查看DLookup,也许=DLookupExpr1,您提供的pass-thru querylookup的名称对我也不适用。我还尝试创建一个本地查询,从传递查询中获取值,然后将其引用为默认值,但失败了。我是否必须指定哪一行应被视为默认值?如果我将文本框更改为组合框,并使用传递查询作为行源,则这些值将通过。我可以解除该组合框的绑定,创建一个绑定到所需字段的新文本框,并通过执行default value=[combobox].ItemData[0]使其获得默认值,但我不知道如何直接执行此操作。