如何在Access窗体中使用组合框来使用外键更新记录但显示该键的查找?

时间:2013-10-16 16:21:25

标签: sql ms-access

我认为在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
);

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

例如,如果RequestStatus.RequestStatus值为:

  • (1, “1”)
  • (2,“two”)

我希望下拉列表显示选项“one”和“two”,但实际上,当选中它们时,将Projects.RequestStatus分别更新为1或2。

我可以通过简单地制作我的Combobox,轻松地将“一个”和“两个”值推入下拉列表中:

  • RowSource = SELECT RequestStatus.RequestStatus FROM RequestStatus;
  • ControlSource = RequestStatus.RequestStatus

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

如果我将ControlSource更改为Projects.RequestStatus,它不允许我选择使用“一个”或“两个”指示符,因为显示的值是1/2等。

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:9)

尝试使用此组合框:

控件来源:Projects.RequestStatus
行源:SELECT ID,RequestStatus FROM RequestStatus
绑定栏:1
列数:2
列宽:0“; 1”

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