Привязка поля со списком формы в Access 2007 - PullRequest
6 голосов
/ 16 сентября 2008

Я создал форму Access 2007, которая отображает, например, Продукты из таблицы Продуктов. Одним из полей таблицы Product является CategoryID, соответствующий родительской категории этого продукта.

В форме CategoryID необходимо представить в виде комбинированного окна, связанного с таблицей Category. Идея здесь довольно проста: выбор новой категории должен обновить CategoryID в таблице Product.

Проблема, с которой я сталкиваюсь, заключается в том, что при выборе новой категории обновляется CategoryName таблицы Category вместо обновления CategoryID в таблице Product. Причина этого в том, что кажется, что поле со списком должно быть связано только с CategoryName таблицы Category.

Что происходит, если текущий продукт имеет CategoryID, равный 12, который представляет собой CategoryName «Стулья» в таблице Category, а затем выбирает новое значение, скажем, «Tables» (CategoryID 13) в поле со списком обновляет CategoryID 12 с новым CategoryName «Таблицы» вместо обновления таблицы Product CategoryID до 13.

Как я могу связать таблицу категорий с полем со списком, чтобы полем данных (которое я хотел бы иметь в Access) является имя категории, а полем данных - это идентификатор категории, и будет обновляться только идентификатор категории продукта, когда выбранное поле со списком пункт изменен?

Редактировать: См. Принятый ответ ниже. Мне также нужно было изменить количество столбцов до 2, и все стало работать отлично.

Ответы [ 2 ]

4 голосов
/ 16 сентября 2008

Вам нужно использовать оба значения в запросе для поля со списком.
например ВЫБЕРИТЕ CategoryId, CategoryName FROM CategoryTable ... Свяжите поле со списком в первом столбце CategoryId. Установите ширину столбца для поля со списком 0in (второе значение не требуется, поэтому нет ограничений). Это скроет первый столбец, который содержит выбранное вами значение; все, что показывает это значение описания, это все, что вы хотите увидеть. Так что теперь, когда вы выбираете другую опцию в выпадающем списке, значение, возвращаемое в поле со списком, будет связанным значением, CategoryId, а не CategoryName.

Ах да, Элисон, извините, я забыла о настройке combobox columncount = 2.

0 голосов
/ 17 сентября 2008

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

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