5

我有我认为在 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,"一")
  • (2,"二")

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

通过简单地制作我的组合框,我可以很容易地将“一”和“二”值推送到下拉列表中:

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

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

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

我怎样才能做到这一点?

4

1 回答 1

9

试试这个组合框:

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

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

于 2013-10-16T16:27:51.777 回答