微软Access可以自动完成字段吗?

6

我正在使用 Microsoft Access 2007。当我开始输入新记录时,有没有一种方法可以让 Access 建议之前已经输入过的单词,以节省我输入整个单词的时间?例如,当我开始键入 S 时,它可能会开始建议我以前已经键入的以 S 开头的单词,然后如果我键入 ST,它可能会建议 STATION,我只需按 Enter 插入该单词即可?


1
你已经包含了一个下拉框的标签;对我来说,这似乎是最便宜的解决方案。将组合框的行来源设为查询:SELECT DISTINCT YourField FROM YourTable ORDER BY YourField; - HansUp
@HansUp +1 你应该将你的评论放在答案中...它解决了这个问题。 - Barranka
你好,感谢回复。我尝试了你的查询,但它并没有解决问题。我认为我的表格出了一些问题。我的“部门描述”字段已经输入了一个值,但是我的新值并没有添加到下拉列表项中,也没有添加到我的部门表格中。你能指出我的表格哪里有问题吗? - Tukai Nancy
将控件源设置为将接收组合框值的字段名称。这被称为将组合框“绑定”到字段。如果没有控件源,则会出现“未绑定”的组合框...这意味着它不会在任何地方存储任何内容。 - HansUp
谢谢HansUp。我是Access 2007的新手,但是Yourtable你是指我拥有所有表格(例如Department,School等)的合并表格,还是只指我拥有的特定表格,比如只有Department列表。因为我只有3个表格:学校、系和学生,我还有另一个表名将它们组合起来,以在我的表单中输出结果。对于控件源,名称DepartDesc例如或其他什么名称?谢谢。 - Tukai Nancy
显示剩余2条评论
1个回答

9

你的问题中包含了一个combobox标签,这对我来说似乎是最经济实惠的解决方案。

将组合框行源设置为查询:

SELECT DISTINCT YourField
FROM YourTable
ORDER BY YourField;

使用组合框的“限制列表”属性设置为“否”,用户可以添加一个以前未存储的值。
或者,将该属性设置为“是”,并为组合框的“未在列表中”事件编写VBA代码。
无论哪种方式,您都应该在YourField上建立索引。您可以从表单的On Current事件中.Requery组合框的行源,以便它“刷新”以获取最新的添加项。

嗨,汉斯,为什么我输入的新文本没有出现在下拉列表框中,但它已经保存在我的数据库中了?只有我创建表格时输入的值才在下拉列表框中。 - Tukai Nancy
在您向表中添加新值后,您是否需要对组合框进行“重新查询”操作? - HansUp
我已经尝试过了,但在Access 2007中无法运行。在教职工表单中,我有一个StaffDesc组合框。这是我在“事件”选项卡上的表单类型代码...Private Sub Form_Current() Me.StaffDesc.Requery End Sub - Tukai Nancy
这对我来说听起来是正确的。我不明白为什么它不起作用。也许你可以将你的数据库上传到文件共享网站并提供链接。 - HansUp
嗨,hansUp。我正在处理三个表格,分别是ITStaff、AccountsStaff和SoftwareStaff,它们的ID和描述已经输入。所以在我的FacultyForm中,我有ITStaffID、ItstaffDesc、AccountsStaffDesc和SoftwareStaffDEsc,除了ITStaffID之外,其他都有组合框。我不确定在表单事件OnCurrent中哪一个会重新查询? - Tukai Nancy
如果您不确定,请“重新查询”所有4个组合。 - HansUp

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接