MS Access 2003 - 根据以前的表单字段自动填写表单字段。

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

我目前正在尝试设计一个需要大量用户通过表单输入数据的数据库。

其中一个 table 是 'user' table。 table中的信息有 用户标识(整数), 用户名(文本), 名字(文字), 姓氏(文字)

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

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

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

设置条件像这样

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

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

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

好的,现在自动填充(是的,我确实找到了一个例子),这将在您填充用户 ID 后填充用户名(在这种情况下,两者都应该是组合框,称为 Usernamecombo 和 useridcombo) 首先使用类似于此的 SQL 进行查询:

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

让我们调用此查询 "qry_username"。 然后转到表单的设计视图和 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