Вы действительно не можете создать форму, которая работает со столбцами от name1 до name5.
Доступ - это база данных, а не электронная таблица. Поэтому при работе с данными вы работаете со строками данных, а не со столбцами данных.
Итак, создайте таблицу, содержащую имена, которые вы хотите выбрать.
Outfall_ID | Имя.
Ваша таблица будет иметь два столбца, как указано выше. Затем вы можете создать форму и запустить поле со списком (или список), основанное на приведенной выше таблице. Появится список или поле со списком, позволяющее выбрать имя.
В этой форме под полем со списком (или списком) у вас есть кнопка для запуска вашего отчета. Вы можете отфильтровать отчет по выбранному имени следующим образом:
DoCmd.OpenReport "rptOutfalls", acViewPreview, , "outfall_ID = " & Me.MyComboBox
Выше будет фильтровать отчет по заданному (выбранному) outfall_ID.
Если вам нужно отфильтровать отчет по фактическому текстовому имени, выбранному вами в поле со списком (или в списке), мы предполагаем, что поле со списком отображает как outfall_id, так и имя. Таким образом, имя является вторым столбцом поля со списком.
Если мы будем фильтровать отчеты по выбранному имени, то команда openreprot будет выглядеть так:
DoCmd.OpenReport "rptOutfalls", acViewPreview, , "outfallName = '" & Me.MyComboBox.column(1) & "'"
Таким образом, приведенный выше отчет теперь будет фильтроваться только по имени, выбранному вами в поле со списком.
Редактировать
Edit:
SQL не может переводить столбцы в разные столбцы. Вам необходимо нормализовать данные, чтобы такие обновления можно было выполнять с помощью SQL.
Таким образом, ваш стол должен выглядеть так:
mytrans
ID Myset SetID TranslateTo
1 Name1 1 A
2 Name1 2 B
3 Name1 3 C
4 Name2 1 X
5 Name2 2 Y
6 Name2 3 X
Таким образом, ваше поле со списком будет основано на этом запросе:
select distinct MySet from myTrans
Ваш sql для «перевода» идентификатора на основе выше будет
Select ID, Field1, Field2, outfall_ID,
(select TranslateTo from mytrans
where mytrans.SetID = outfall_id and myset = 'Name1’) as outfallText
from theDataTable