我正在使用Access 2003中的应用程序。在其中,我有一个employee表,它连接到另外两个表。两个连接的表是包含一些固定KeyWords的表。在我的主员工表中,我只是拥有其他表中的ID,而不是完整的单词。
我想创建一个表格,将数据输入这些表格,所以我从三个表格中查询了员工表格的所有常规字段,除了这两个ID之外,我自己展示了这些单词。
然后我创建了表单并将查询设置为RecordSource。具有关键字的字段是我的表单上的组合框,它们的ControlSource是查询中的关键字字段(就像我之前提到的,值只能是列表中的一个关键字)。现在,我面临的问题是:当我想要查看单个记录时,它会在ComboBox中显示正确的值,但是当下拉菜单时,它不会显示任何其他值。
最好的方法是什么?我这样做是错误的吗?
谢谢
答案 0 :(得分:3)
我的处理方式略有不同,将组合框Row Sources设置为包含id和text字段(如果需要,可以通过将ID宽度设置为零来隐藏ID列)。现在将ID字段添加到员工查询中;您不需要将其他表连接到此查询中的Employee表,这些字段是外键,组合框应自动为您显示文本。将表单Record Source设置为此查询,现在将组合框Control Source设置为Record Source窗体中的相应ID值。
如果您让向导根据Employee表为您构建表单,您将看到此方法的实际效果。
答案 1 :(得分:0)
您已将查询设置为表单的记录源。表单一次只显示(并绑定)一条记录。
由于您希望组合框显示所有值,因此应将ComboBox的RecordSource设置为您的查询。
答案 2 :(得分:0)
ControlSource 是将保存任何用户条目的表的列名。
RowSource 是您键入直接键入该字段的已保存查询或手动查询的名称,用于提供组合框的可用下拉选项列表。
RowSourceType 应设置为Table / Query,它基于前面提到的RowSource方法。
现在纠正只显示您开始输入内容的问题(即"允许自动更正"在属性表>其他中)或已经为此记录保存而没有其他单击下拉列表后出现的选项如下:
注意:如果你想要的下拉选项是第二列而不是第一列(使事情变得更容易),那么从上面做以下更改:
在开始时对此进行排序的最简单方法是通过执行以下操作来查看列标题名称以了解您正在查看的内容: 属性表>格式>列头 =设置为是。至少你会知道什么是显示以及你是否在正确的轨道上。
答案 3 :(得分:0)
我在Access 2016中遇到了同样的问题,但问题出在我的数据类型上。组合框不接受“长文本”,因此我只是将数据类型改为“短文本”,所有值都出现了。