Использовать существующие поля записей в комбинированном списке MS Access - PullRequest
0 голосов
/ 09 марта 2020

У меня есть форма доступа MS, которая имеет поля из двух реляционных таблиц. Упрощенное представление моей базы данных - A(Date, ActivityID) и B(ActivityID, ActivityName). Затем в форме есть только два механизма ввода: один для ввода даты, а другой для ввода имени действия. Входным объектом для ActivityName является комбинированный список с RowSource как "Select B.ActivityName from B", и элементы не ограничены списком. Это позволит пользователю создавать новые ActivityNames по мере необходимости, но также выбирать из уже встречающихся ActivityNames.

При тестировании функционал для создания новых типов ActivityNames работает нормально - он создает новое ActivityName и связывает его с новым идентификатором, дополнительно он заполняет A.ActivityID этим новым идентификатором. Однако, когда я go выбираю элемент из выпадающего списка уже обнаруженных ActivityNames, Access создает новую запись с тем же ActivityName и новым идентификатором, а не выбирает уже созданный записать и использовать это значение идентификатора.

Например, скажем, у меня есть следующие данные для B {(1, Run), (2, Jump)}. Тогда в форме параметры раскрывающегося списка для ActivityName будут {Run, Jump}. Однако, когда я выбираю «Run», тогда данные для B становятся {(1, Run), (2, Jump), (3, Run)}, когда я хотел извлечь значение идентификатора 1.

Я попытался установить для поля ActivityName значение Unique, чтобы принудительно применить уникальность (которая, как я думал, может заставить двигатель использовать уже созданные значения), однако это не поощряет доступ к поисковым значениям из таблицы - скорее, это дает мне ошибку, говоря, что

"такое и такое изменение приведет к дублированию значений в индексе ".

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