Должен ли я построить свою форму на основе запроса, чтобы увидеть атрибуты двух связанных объектов? - PullRequest
0 голосов
/ 22 февраля 2020

Я создаю базу данных в Microsoft Access 2016, и у меня есть два отношения (таблицы): таблица персонала и таблица ежедневной активности. Таблица ежедневной активности ссылается на таблицу персонала через отношение 1 ко многим (номер сотрудника является иностранным в таблице ежедневной активности).

Я создаю форму для пользователей, чтобы ввести их ежедневную активность, и я бы хотел как пользователи, чтобы иметь возможность выбрать свое имя или позывной, а не просто какой-то случайно сгенерированный первичный ключ, установленный через автонумерацию (я знаю, со временем у пользователей будут свои собственные индивидуальные профили, которые автоматически идентифицируют их в СУБД).

Если я создаю форму, основанную исключительно на таблице ежедневной активности, поле поиска для таблицы «Число сотрудников» представляет собой случайное число, которое может быть не очень полезным для каждого сотрудника для идентификации себя. Поэтому я должен построить запрос, основанный на двух таблицах, и использовать этот запрос, на котором будет основываться форма, используя ВСЕ поля из таблицы Daily Activity и сказать: Имя, Фамилия (у меня фактически есть вопрос о конкатенации для объединения имен , который я, вероятно, буду использовать, если возможно), позывной и, конечно, поле «Номер сотрудника»?

1 Ответ

0 голосов
/ 23 февраля 2020

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

https://support.office.com/en-us/article/create-or-delete-a-lookup-field-87e84cbd-d60c-4473-8a98-3e391c42f239

, опыт научил меня покидать столы одни. Дружественный подход заключается в использовании комбинированных полей в ваших формах и отчетах. Когда я запускаю мастер форм, я обычно удаляю текстовое поле DailyActivityID:

enter image description here

или даже не включаю его при использовании мастера форм:

enter image description here

За кулисами DailyID все еще связывает ваши таблицы, пользователь формы просто не видит его.

Далее мы предоставляем поиск номера сотрудника путем замены связанного текстового поля на поле со списком. Просто щелкните правой кнопкой мыши по текстовому полю EmployeeNumber, чтобы увидеть опцию, чтобы перейти в комбинированный список. В этом случае после того, как у вас есть выпадающий список, убедитесь, что связанный столбец равен 1, а затем установите количество столбцов в 2 и ширину столбцов в 0 и 1, как здесь: enter image description here

Тогда измените свойство источника строки, чтобы EmployeeNumber был невидимым столбцом ширины 0:

enter image description here

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

enter image description here

Теперь в форме отображается более понятное имя. Для просмотра записей используйте селекторы записей внизу формы.

enter image description here

Далее я обычно удаляю селекторы записей и заменяю их другим списком со списком. в шапке.

http://vbahowto.com/how-to-make-a-ms-access-filter-form-with-combobox-using-vba/

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