Вопросы | ms-access

Привязка поля со списком формы в Access 2007

Вопрос

NakedBrunch | 16978 просмотров | рейтинг: 0

Я создал форму Access 2007, которая отображает, например, Продукты из таблицы Продуктов. Одним из полей таблицы Product является CategoryID, соответствующий родительской категории этого продукта. В форме CategoryID должен быть представлен как поле со списком, которое связано с таблицей Category. Идея здесь довольно проста: выбор новой категории должен обновить CategoryID в таблице Product. Проблема, с которой я сталкиваюсь, заключается в том, что при выборе новой категории обновляется имя категории в таблице категорий, а не обновляется идентификатор категории в таблице продукта. Причина этого в том, что кажется, что поле со списком должно быть связано только с CategoryName таблицы Category. Что происходит, если текущий продукт имеет CategoryID 12, который является стульями CategoryName в таблице Category, а затем выбирает новое значение, скажем, Tables (CategoryID 13) в поле со списком обновляет CategoryID 12 с новыми таблицами CategoryName вместо Обновление таблицы Product CategoryID до 13. Как я могу связать таблицу категорий с полем со списком, чтобы поле данных (которое, как я хотел, существовало в Access) было именем категории, а поле данных было идентификатором категории, и только идентификатор категории продукта будет обновляться при изменении выбранного элемента поля со списком ? Изменить: см. Принятый ответ ниже. Мне также нужно было изменить количество столбцов до 2, и все стало работать отлично.



Ответы

Brettski

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


Mark Plumpton

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


Теги

ms-access | data-binding | forms | combobox