Обязательные поля со списком формы в Access 2007

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

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

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

Что происходит, если текущий продукт имеет CategoryID 12, который является CategoryName "стулья" в таблице категорий, а затем выбирает новое значение, скажем, " таблицы "(CategoryID 13) в поле со списком обновляет CategoryID 12 с новым именем категории "таблицы" вместо обновления CategoryID таблицы продуктов до 13.

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

Edit: см. принятый ответ ниже. Мне также нужно было изменить количество столбцов на 2 и все начало работать отлично.

2 ответов


вы должны использовать оба значения в запросе для поля со списком.
например, выберите CategoryId, CategoryName из CategoryTable... Привязать поле со списком к столбцу fist, CategoryId. Установите ширину столбца для поля со списком в 0in (второе значение не требуется, поэтому ограничения нет). Это скроет первый столбец, содержащий выбранное вами значение; все, что показывает ему значение описания, которое вы хотите видеть. Итак, теперь, когда вы выбираете другую опцию в combobox, возвращаемое значение в поле со списком будет привязанное значение CategoryId, а не CategoryName.

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


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