Обязательные поля со списком формы в 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 категории с одинаковыми названиями.