访问ComboBox到TextBox

时间:2017-03-17 16:05:34

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

我有一个任务列表表单,其中包含用于任务优先级列表的组合框。组合框的行源连接到优先级表。我有组合框工作,所以它显示正确的文本“紧急,高,等”基于任务和优先级表关系。

我想要做的是代替显示优先级的组合框,我希望它是一个文本框。这是我遇到问题的地方。

如何以表格形式和/或我需要更改哪些字段来完成此操作?

我已尝试设置文本框:

  • Control Sources = [Priority]![Priorities]这会给出#Error 文本框
  • Default Value = [Priority]![Priorities]这也给出了#Error 文本框
  • Control Source = DLookUp("[Priorities]","[Priority]","[ID]="&[Tasks]![Priority])这会给#Name?在文本框中
  • Default Value = DLookUp("[Priorities]","[Priority]","[ID]="&[Tasks]![Priority])这也给#Name?在文本框中
  • Control Source = Priority给出了任务和优先级表之间关系的数字查找

这个有效,但速度明显很慢。是否有“更快”,更好的方式。

  • Control Source =DLookUp("Priorities","Priority","ID=" & [Priority])

1 个答案:

答案 0 :(得分:2)

为什么要文本框?还需要一个组合框来选择优先级。

表单是否绑定到Task表?无法在文本框控件来源或默认值中引用优先级表。 DLookup将无法在默认值中使用。控件源中的DLookup应该可以正常工作。

更简单的方法是将表单记录源设置为具有左或右连接的SQL语句,该语句将“包括来自任务的所有记录,并且仅包括来自匹配的优先级的记录”。将文本框绑定到优先级的描述性“优先级”字段。将文本框设置为“已启用否”和“已锁定是”,以便用户无法对其进行编辑。

如果要屏蔽/隐藏ID,则将组合框设置为多列,使用其RowSource SQL拉取所需字段,并通过将其宽度设置为0来隐藏ID列。或者不保存优先级ID,保存实际的描述性价值。使用非常简短的描述符和/或可以证明合理的小型数据库。