1

我有两张桌子:

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 字段)。

4

2 回答 2

3

将下拉框的rowsource设置为“select uid,first_name,lastname from tablename'并将columnwidth设置为0。这样第一列的宽度设置为零,因此用户看不到它。(您可以提供其他列的宽度用分号分隔,即:0cm;4cm;4cm)

于 2008-09-30T13:40:31.130 回答
3

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

在您的情况下,将 Row Source 设置为select uid, first_name, last_name from tablename意味着您的 Bound Column 应该是 1,对于您的 Row Source (uid) 中的第一列。这是默认值,因此如果您想保存来自不同字段的值,您只需要更改它。(例如,如果您想从上面的 Row Source 中保存 last_name,您可以将 Bound Column 设置为 3。)

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

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

于 2008-09-30T15:49:57.760 回答