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

end*_*and 5 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
);
Run Code Online (Sandbox Code Playgroud)

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

例如,如果RequestStatus.RequestStatus值为:

  • (1, "1")
  • (2 "2")

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

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

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

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

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

我怎样才能做到这一点?

Gor*_*son 9

试试你的组合框:

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

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