我目前正在尝试设计一个数据库,需要大量用户通过表单输入数据。
这些表中的一个是'用户'表。表中的信息是 userid(int), 用户名(文字), 名字(文字), 姓氏(文字)
即使我填写表单并在用户名字段中提供用户名,如果用户名已存在,则可以从用户表中提取名字和姓氏并自动填充表格领域?如果是这样,你能指出我正确的方向吗?
直接通过访问功能还是通过vba?如果在2003年不可能在2007年实现这一目标吗?
答案 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