【问题标题】:Can Microsoft Access autocomplete fields?Microsoft Access 可以自动完成字段吗?
【发布时间】:2013-02-21 21:43:18
【问题描述】:

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

【问题讨论】:

  • 您为组合框添加了标签;在我看来,这可能是最便宜的解决方案。使组合行源成为查询:SELECT DISTINCT YourField FROM YourTable ORDER BY YourField;
  • @HansUp +1 你应该把你的评论作为答案......它解决了这个问题
  • 您好,感谢您的回复我尝试了您的查询,但它没有解决我认为我的表有问题。我的 部门描述 字段我已经在那里输入了一个值,但是我的新值输入的不加到我的下拉列表中,也不加到我的部门表中。你能指出我的表中有什么问题吗
  • 我没有收到任何错误消息,我的新值已存储,但我输入的最后一个值丢失了,没有添加新行。我在控制源上没有任何值,绑定值设置为 1
  • 将控制源设置为将接收组合值的字段的名称。这称为将组合“绑定”到字段。没有控制源,你有一个“未绑定”的组合......这意味着它不会在任何地方存储任何东西。

标签: ms-access combobox textbox ms-access-2007


【解决方案1】:

您的问题包含 combobox 的标签;在我看来,这可能是最便宜的解决方案。

使组合行源成为查询:

SELECT DISTINCT YourField
FROM YourTable
ORDER BY YourField;

将组合的“列表限制”属性设置为“否”,用户可以添加以前存储的值中不存在的值。

或者,将该属性设置为“Yes”并为组合的“On Not in list”事件编写 VBA 代码。

无论哪种方式,您都应该在YourField 上有一个索引。您可以从表单的 On Current 事件中 .Requery 组合的行源,以便它“刷新”以获取最新添加的内容。

【讨论】:

  • 嗨汉斯为什么我输入的新文本不在我的组合框下拉列表中但它保存在我的数据库中..只有文本值在我的下拉列表中是我创建表时首先输入的值跨度>
  • 向表中添加新值后,您是否Requery 组合?
  • 我这样做了,但它在访问 2007.faculty 表格中不起作用我有 Staffdesc 组合框..这是我在事件选项卡上的表格类型上的代码...私人子 Form_Current() 我。 StaffDesc.Requery End Sub
  • 这听起来对我来说是正确的。我不明白为什么它不起作用。也许您可以将您的数据库的副本上传到文件共享站点并提供链接。
  • 嗨 hansUp..我处理三个表..像 ITStaff、AccountsStaff 和 SoftwareStaff 输入了他们的 ID 和描述..所以我在我的 FacultyForm 我有 ITStaffID、ItstaffDesc、AccountsStaffDesc 和 SoftwareStaffDEsc 都有组合除了 ITStaffID 之外的框..我不确定在 Form 事件 Oncurrent 中哪个是 Requery?
猜你喜欢
  • 2016-03-08
  • 2011-03-20
  • 1970-01-01
  • 1970-01-01
  • 2010-10-14
  • 1970-01-01
  • 2014-12-16
  • 1970-01-01
相关资源
最近更新 更多