[英]MS Access - open a form taking a field value from a previous form
[英]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.