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