【问题标题】:How to use a combobox in Access form to update record with foreign key but display a lookup of that key?如何使用 Access 表单中的组合框使用外键更新记录但显示该键的查找?
【发布时间】:2013-10-16 16:21:25
【问题描述】:

我有我认为在 Access 中很容易做的事情。

假设我有以下表格(在 SQL 中生成):

CREATE TABLE Projects (
    ID int IDENTITY(1,1) PRIMARY KEY,
    RequestStatus int FOREIGN KEY REFERENCES RequestStatus(ID),
    mName varchar(50)
);

CREATE TABLE RequestStatus (
    ID int IDENTITY(1,1) PRIMARY KEY,
    RequestStatus varchar(50) unique
);

我想在 Access 中的 Projects 表上创建一个表单,该表单有一个下拉菜单,允许用户更改 RequestStatus - 但显示 varchar(50) 值。

例如,如果 RequestStatus.RequestStatus 值为:

  • (1,"一")
  • (2,"二")

我希望下拉菜单显示“一”和“二”选项,但实际上,当它们被选中时,将我的 Projects.RequestStatus 分别更新为 1 或 2。

我可以很容易地将“一”和“二”值推送到下拉列表中,只需制作我的 Combobox:

  • RowSource = 从 RequestStatus 中选择 RequestStatus.RequestStatus;
  • ControlSource = RequestStatus.RequestStatus

但是,当我更改组合框的值时,它会尝试在 RequestStatus 表中插入一个新值——这显然是个问题。

如果我将 ControlSource 更改为 Projects.RequestStatus,它不会让我选择使用“一”或“二”指示器,因为显示的值是 1/2 等。

我怎样才能做到这一点?

【问题讨论】:

    标签: sql ms-access


    【解决方案1】:

    为您的组合框试试这个:

    控制来源:Projects.RequestStatus
    行来源:SELECT ID、RequestStatus FROM RequestStatus
    绑定列:1
    列数:2
    列宽:0";1"

    这样你的组合框有两列(ID 和 RequestStatus),但第一列是隐藏的,因为它的宽度为零。

    【讨论】:

      猜你喜欢
      • 2012-03-21
      • 2010-09-14
      • 2018-06-16
      • 1970-01-01
      • 2018-12-02
      • 1970-01-01
      • 1970-01-01
      • 2011-09-04
      • 1970-01-01
      相关资源
      最近更新 更多