Как использовать запрос в качестве источника для отчета в MS Access 2007? - PullRequest
0 голосов
/ 24 июня 2011

Я сделал следующее в MS Access: я создал форму со списком и кнопкой. Вы выбираете вариант оттуда и нажимаете на кнопку, и он должен открыть отчет. Теперь я написал запрос, выбрав несколько полей из таблицы, и в предложении where задал условие как where name=str(combo1.value), а в качестве этого запроса был указан источник отчета. Теперь, когда я выбираю значение и нажимаю на кнопку, открывается пустой отчет. Как я могу заставить его загружать только эти конкретные значения?

Я нигде не сохраняю значение поля со списком. Он сказал, что запомнит значение для последующего использования. Правильно ли я поступаю, не сохраняя это? Что я должен сделать, чтобы сделать эту работу? Пожалуйста, помогите мне!

Редактировать: В поле со списком используются значения из столбца 1 таблицы X. Я не связывал значение ни с одним полем и использую предоставленную опцию «Запомни значение для последующего использования». , Поле со списком - это, по сути, список отелей, а отчет - это список людей, остановившихся в выбранном отеле. Когда я ставлю идентификатор поля (как определено в X), это работает. Но дело в том, что оно должно ссылаться на названия отелей, а не на идентификационный номер, который я должен ввести во всплывающем окне, которое запрашивает его. Что мне делать?

Редактировать 2: Запрос выглядит следующим образом:
SELECT Table_1.Hotel_Name, Table_2.Name_of_Delegate, Table_2.Address, Table_2.City, Table_2.Center, Table_2.Spouse_Present, Table_2.No_of_Children, Table_2.No_of_Guests, Table_2.No_of_Rooms FROM Table_1 INNER JOIN Table_2 ON Table_1.ID=Table_2.Hotel_of_Residence WHERE Table_1.Hotel_Name=FormName.Combo7.Text;

Когда я нажимаю на кнопку (которая открывает отчет), он запрашивает название отеля во всплывающем окне. Как я могу избежать этого? Что я делаю не так?

Ответы [ 2 ]

3 голосов
/ 24 июня 2011

Вы можете использовать WhereCondition с DoCmd.OpenReport Method в качестве "динамического предложения WHERE" для источника записи вашего отчета.Используйте что-то вроде этого в событии click командной кнопки, которая открывает ваш отчет.

DoCmd.OpenReport "YourReport", , , "[name]=" & Me.combo1

Удалите добавленное вами предложение WHERE, where name=str(combo1.value), из запроса отчета.

Я окружил имя в квадратных скобках, поскольку имя является зарезервированным словом.См. Имена проблем и зарезервированные слова в Access

Редактировать : В комментарии вы сказали это о поле со списком:

"Источник строкиВЫБЕРИТЕ [Table_Name]. [ID], [Table_Name]. [Name] FROM [Table_Name] ;. Связанный столбец равен 1 (я предполагаю, что отображает имена, которые я хочу отображать в выпадающем списке.) "

Когда вы ссылаетесь на значение поля со списком, это значение является значением «Связанный столбец».Таким образом, в вашем случае связанный столбец равен 1, что означает, что комбинированное значение будет [Table_Name]. [ID].Однако вы хотите открыть свой отчет на основе столбца [Имя] в комбинированном списке.Поэтому измените связанный столбец комбо с 1 на 2.

1 голос
/ 24 июня 2011

Чтобы открыть отчет, используя значение вашего выпадающего списка, в запросе к отчету необходимо сделать следующее:

SELECT fields
FROM table
WHERE YourValue = [Form]![FormName]![ComboBox Value]

Необходимо указать имя формы плюс значение, чтобы запрос отчета знал это значение. Надеюсь это поможет.

...