繁体   English   中英

MS Access 2003-基于以前的表单域自动填充表单域。

[英]MS Access 2003 - Auto fill form-field based on previous form field.

我目前正在尝试设计一个数据库,该数据库需要许多用户通过表单输入数据。

这些表之一是“用户”表。 表格中的信息包括用户ID(int),用户名(文本),名字(文本),姓氏(文本)

即使我正在填写表单并在用户名字段中提供用户名,如果用户名已经存在,是否有可能从用户表中提取名字和姓氏并自动填充这些表单字段? 如果可以的话,您能指出我正确的方向吗?

直接通过访问功能还是通过vba? 如果在2003年不可能,那么在2007年是否有可能?

我有一个类似的表格,我使用这些字段作为组合框。 然后将属性行源设置为查询。

设置条件像这样

WHERE ((([Users].Username) Like '*' & [Forms]![YourForm]![Username] & '*'));

这将允许用户尽快选择名称

但是它不会自动填充它,因为我的用户可以使用与其他用户相同的用户名。

现在可以自动填充了(是的,我确实找到了一个示例),在填充用户标识后,这将填充用户名(在这种情况下,两者都应为组合框,分别称为Usernamecombo和useridcombo)。首先使用类似于以下内容的SQL进行查询:

SELECT [User].username FROM User WHERE ((([User].userid) Like '*' & [Forms]![Yourform]![useridcombo] & '*'));

让我们将此查询称为“ qry_username”。 然后转到表单的designview和useridcombo的属性,在event / afterupdate属性中创建一个事件过程(VBA):

Private Sub useridcombo_AfterUpdate()

[Forms]![yourform]![Usernamecombo].Value = DFirst("username", "qry_username")
Forms("yourform").[Usernamecombo].Requery 'this last line is optional

End sub

其他字段可以很简单地添加到VBA中(不要忘记查询)

Private Sub useridcombo_AfterUpdate()

[Forms]![yourform]![Usernamecombo].Value = DFirst("username", "qry_username")
[Forms]![yourform]![Firstnamecombo].Value = DFirst("Firstname", "qry_username")
[Forms]![yourform]![Lastnamecombo].Value = DFirst("Lastname", "qry_username")
Forms("yourform").[Usernamecombo].Requery 'this last line is optional

End sub

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM