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

时间:2015-01-11 00:17:14

标签: database ms-access access-vba ms-access-2007 ms-access-2003

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

这些表中的一个是'用户'表。表中的信息是 userid(int), 用户名(文字), 名字(文字), 姓氏(文字)

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

直接通过访问功能还是通过vba?如果在2003年不可能在2007年实现这一目标吗?

2 个答案:

答案 0 :(得分:1)

我有一个类似的形式,我用这些字段作为Comboboxes。 然后将属性行源设置为查询。

设置标准“这样

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

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

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

答案 1 :(得分:1)

现在好了自动填充(是的,我确实找到了一个例子),填写用户ID后,这将填充用户名(在这种情况下,两者应该是组合框,名为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