我有两张桌子:

Employees:
uid (number) | first_name (string) | last_name (string) | ...

Projects:
uid | project_title (string) | point_of_contact_id (FK: Employees.uid) | ...

我想为具有“联系点”的项目创建表单。组合框(下拉列表)字段。显示值应为“first_name last_name”;但是后备数据是UID。如何设置表单以向用户显示一件事并将另一件事保存到表中?

我可以只显示一个字段(例如“first_name”),因为我可以创建一个带有full_name字段的视图。

随后:

如果有一种方法可以在表设计级别执行此操作,我宁愿这样做,因为那时我只需要为每个UID列设置一个设置(并且有许多表),而不是每个UID字段设置一个(并且有许多表单,每个表单都有几个UID字段)。

有帮助吗?

解决方案

要展开Loesje的答案,当您显示多个字段时,可以使用“绑定列”属性以及“列数”和“列宽”,以便可以告诉Access应将哪一个写入数据库。 (还有其他方法可以使用VBA执行此操作,但这应该适用于您的特定情况。)

在您的情况下,将行源设置为选择uid,first_name,last_name from tablename 意味着您的绑定列应为1,表示行源(uid)中的第一列。这是默认值,因此如果要从其他字段保存值,则只需更改它。 (例如,如果要从上面的行源保存last_name,则将“绑定列”设置为3。)

不要忘记,当您设置要显示的其他列的宽度时,组合框的Width属性应该大于或等于列宽的总和,否则您可能看不到所有列。 / p>

没有办法在表级指示基于该表的表单需要提取特定列,或者特定列是外键,但是您可以将组合框复制到其他表单并且它随身携带它的所有属性。您还可以复制行源查询并将其粘贴到其他组合框中,如果这有助于您。

其他提示

将下拉框的行源设置为“从表名中选择uid,first_name,lastname”并将columnwidth设置为0.这样,第一列的宽度设置为零,因此用户不会看到它。 (您可以提供其他列的宽度,用分号分隔,即:0厘米; 4厘米; 4厘米)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top