Как мне сделать поля со списком внешнего ключа удобными для пользователя в форме доступа?

StackOverflow https://stackoverflow.com/questions/153035

  •  03-07-2019
  •  | 
  •  

Вопрос

У меня есть два столика:

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, вы используете свойство Bound Column вместе с количеством столбцов и шириной столбцов при отображении нескольких полей, чтобы вы могли указать Access, какое из них следует записать в базу данных.(Есть и другие способы сделать это с помощью VBA, но это должно сработать в вашем конкретном случае.)

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

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

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

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top