Как сделать поля со списком внешних ключей удобными для пользователя в форме доступа? - PullRequest
1 голос
/ 30 сентября 2008

У меня есть две таблицы:

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. Как настроить форму, чтобы показать одну вещь пользователю и сохранить другую в таблице?

Я бы согласился, если бы я мог показывать только одно поле (например, только «имя_первого»), поскольку я могу создать представление с полем полного_имя.

Позже:

Если есть способ сделать это на уровне разработки таблицы, я бы предпочел это, так как тогда мне нужно было бы только установить настройку для столбца UID (а много таблиц), а чем одна настройка для каждого поля UID (и существует много форм, каждая с несколькими полями UID).

Ответы [ 2 ]

3 голосов
/ 30 сентября 2008

Чтобы расширить ответ Loesje, вы используете свойство Bound Column вместе с Column Count и Column Widths при отображении нескольких полей, чтобы вы могли указать Access, какое из них следует записать в базу данных. (Есть другие способы сделать это с помощью VBA, но это должно работать для вашего конкретного случая.)

В вашем случае установка для параметра «Источник строки» значения select uid, first_name, last_name from tablename означает, что для вашего столбца привязки должно быть 1 для первого столбца в источнике строки (uid). Это значение по умолчанию, поэтому вам нужно будет изменить его, только если вы хотите сохранить значение из другого поля. (Например, если вы хотите сохранить last_name из источника строки выше, вы должны установить Bound Column на 3.)

Не забывайте, что когда вы устанавливаете ширину других отображаемых столбцов, свойство Width поля со списком должно быть больше или равно сумме ширины столбцов, в противном случае вы можете не увидеть все столбцы.

Нет способа указать на уровне таблицы, что форма, основанная на этой таблице, должна извлекать определенные столбцы или что конкретный столбец является внешним ключом, но вы можете скопировать комбинированное окно в другие формы и будет нести все свои свойства с ним. Вы также можете скопировать запрос Row Source и вставить его в другие поля со списком, если это вам поможет.

3 голосов
/ 30 сентября 2008

Установите для источника строк раскрывающегося списка значение «выберите uid, first_name, lastname from tablename» и установите для ширины столбца значение 0. Таким образом, ширина первого столбца устанавливается равной нулю, поэтому пользователь не видит его (( Вы можете указать ширину остальных столбцов, разделяя их точкой с запятой, то есть: 0 см; 4 см; 4 см)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...