Microsoft Access - 字段'列绑定'没有正常工作

时间:2017-01-18 15:01:07

标签: ms-access

我遇到了'列绑定问题'选项。

我想创建一个组合框,以便该字段显示另一个表字段,当我打开该框时,它将显示前3列。当我选择行时,我希望它保存第二个值。

为此我定义了这样的字段:

  1. 显示控件 - 组合框
  2. 行源数据 - 表/查询
  3. 行来源 - 客户
  4. 绑定列 - 2;列数 - 3
  5. 当我单击并从列表中选择一个向下滚动的行时,它会显示单元格中的第一个列值,而不是第二个列值。

    有人可以帮我解决问题吗? (我检查字段类型及其精细文本)

    提前致谢, 加尔:)

4 个答案:

答案 0 :(得分:0)

如果不希望它们可见,则需要将前面列的宽度设置为0。否则,当您绑定列时,它们将完全按照表格中的格式显示。即如果要显示第3列,则需要在显示中将第1列和第2列设置为列宽..... 0“; 0”; 1“。当您展开字段时,您应该注意到所有三列都是显示,但您只能看到第1列中的数据,因为其余部分正在您的框中被截断。

答案 1 :(得分:0)

您真正想要做的是将下拉列表设置为仅两个值,一个隐藏实际绑定值,另一个隐藏任何您想要显示的值。例如,如果您想要显示的3列是:[ID],[名称]和[地址],并且您希望[名称]成为您的“绑定”字段,您的行源应该是:

SELECT [Name], [ID] & ' - ' & [Name] & '-' & [Address] As DisplayField FROM Customers

答案 2 :(得分:0)

如上面“mkinson”所述;对于您不想显示在组合框中的表格,必须将表格的字段级属性“列宽”设置为 0"。 示例:如果您有三列,但只想显示第 2 列;在表设计视图-> 字段属性-> 列宽必须设置为值 0";1";0"。 同样,如果只想显示第 3 列;您可以将字段级列宽属性设置为 0";0";1"。

答案 3 :(得分:0)

这可能会令人困惑,因为下拉列表中显示的列顺序不是从零开始的。也就是说,第一列,无论显示与否,都是1,而不是0。

所以,如果您选择 Col_ID;列表的 col_Name 和 col_Address 并且您想要存储 col_ID 但只显示 col_Name 和 col_Address,您将指定列数为 3,显示宽度为 0";1";2" 但将绑定列设置为 1,而不是 0。

但是,在 VBA 中,如果要引用隐藏的第一列中的值,即我们刚刚称为第 1 列的值,则将其称为第 0 列。如 cmb_Customer.Column(0)。