Да, вы абсолютно можете это сделать. Есть несколько хитростей, но не так много.
- Создайте новую форму и задайте в качестве источника записи таблицу «Заказы». Чтобы увидеть окно свойств формы, щелкните правой кнопкой мыши форму и выберите «Свойства формы»
- На ленте «Дизайн формы» перетащите новое поле со списком на форму.
- Я бы отменил работу мастера, если он запустился, и сделал бы все вручную, но вы можете использовать его, если хотите.
- Убедитесь, что поле со списком выбрано, и посмотрите на его страницу свойств.
- Установите источник управления в поле «Клиент»
- Задайте для источника строки значение «ВЫБРАТЬ Клиенты.ID, Клиенты.Первое имя, Клиенты.Последнее имя ОТ ПОКУПАТЕЛЕЙ» или нажмите кнопку «...», чтобы создать этот простой запрос. Обратите внимание, что поле FIRST - это идентификатор, который является связующим звеном между формой и полем со списком.
- Теперь это работает, НО будет показывать только идентификатор, который бесполезен. Вам нужно исправить форматирование поля со списком. Перейдите на вкладку «Формат» в свойствах, затем найдите «Количество столбцов». Измените это на 3.
- Под этим ширина столбца. Вы можете использовать это, чтобы скрыть поле идентификатора, введя «0,3,3». Возможно, вы захотите поиграть с этими значениями, чтобы они хорошо подходили к длине имен.
- Вы могли бы хотеть, чтобы "Головки колонки" были включены или нет - до вас.
- Просмотрите форму сейчас в «Form View» и наслаждайтесь!
Я обычно сохраняю запрос за комбо отдельно. Затем на шаге 6 вы выбираете запрос, а не вставляете SQL. Причина этого заключается в том, что вы можете повторно использовать источники данных для общих полей со списком. Соглашения об именах - очень хорошая вещь, когда ваша база данных растет, поэтому будьте логичны в том, что вы называете вещами.
На этой заметке я бы изменил имя вашей таблицы переменных на ниже. Для меня это понятнее. Заказы также нуждаются в удостоверении личности. Если идентификаторы имеют одинаковое имя, вы просто играете «соответствовать имени» при присоединении к таблицам.
**Customers** => (CustomerID, firstname, lastname, address)
^
\
**Orders** => (OrderID, CustomerID, product, total)
Вы также можете объединить First / Last в одно поле, а не разделять их (в запросе есть поле Custname: [Firstname] & "" & [Lastname]). Вы можете сделать комбо-блоки действительно мощными в доступе, но будьте осторожны, если в них много строк - они замедлятся.
Для продуктов в заказе вам действительно необходимо создать еще одну таблицу под названием «Строки заказа», в которой в качестве полей указываются поля OrderLineID, OrderID, ProductID и Qty. Тогда в одном заказе может быть несколько товаров. Это выходит за рамки вопроса, но я подумал, что я тоже укажу вам правильное направление. Вам также нужен продуктовый стол.