1 / 1 / 0
Регистрация: 09.04.2010
Сообщений: 459
|
|
1 | |
О подстановке в условие запроса с поля со списком...05.10.2010, 17:36. Показов 10843. Ответов 16
Метки нет (Все метки)
Создана форма «Отчеты», на форме имеется иконка, которая запускает отчет.
Отчет запускается нормально. Но далее, здесь на этой форме, я создаю поле со списком, в котором, например, находятся населенные пункты. Безусловно, это поле построено на базе таблицы населенных пунктов. Само поле отлично работает и нормально производится выбор населенных пунктов в нем. Имя поля со списком «NasPunkt» Далее в запросе, на котором построен отчет, в условии поля «NasPunkt» пишу – =[Forms]![Отчеты]![NasPunkt], т.е. в условие вставляю то, что выбрано в поле со списком на форме отчетов и запускаю выполнение отчета. Выдает сообщение: [Forms]![Отчеты]![NasPunkt] не распознается базы данных Microsoft Jet как допустимое имя поля или выражение. Ошибки в написании нет. Между запросом, в котором прописано условие и отчетом еще есть перекрестный запрос, в котором я никаких условий не пишу, это для сведения. Когда в условие запроса я вручную пропишу имя населенного пункта, условие отбора работает, как только с формы вставляю – нет. Ребята помогите, я целый день не могу решить эту проблему. В тоже время в основной форме у меня более десятка полей со списками откуда вставляются данные в другие поля и там все ОК.
0
|
05.10.2010, 17:36 | |
Ответы с готовыми решениями:
16
Условие на обновление поля со списком Поле со списком, условие для поля Фильтрация запроса-источника поля со списком Передача значения поля со списком в качестве параметра запроса |
0 / 0 / 0
Регистрация: 20.06.2009
Сообщений: 56
|
|
06.10.2010, 07:01 | 2 |
Попробуй так:
Код
[Forms]![Отчеты]![NasPunkt].Value СК! 73!
0
|
1 / 1 / 0
Регистрация: 09.04.2010
Сообщений: 459
|
|
06.10.2010, 09:21 [ТС] | 3 |
И так
[Forms]![Отчеты]![NasPunkt].Value И построителем с формы, получаю то же сообщение: [Forms]![Отчеты]![NasPunkt] не распознается базой данных Microsoft Jet как допустимое имя поля или выражение. Создал совершенно другие отчеты на этой форме, где тоже в условие запроса беру с поля со списком, то же сообщения об ошибке. Создал совершенно другую форму, результат опять тот же. В других программах работает отлично, а здесь какое то чудо. Я уже остолбенел с данной проблемой, так не должно быть, почему не видет эту форму не понятно. Спасибо Вам.
0
|
1 / 1 / 0
Регистрация: 09.04.2010
Сообщений: 459
|
|
06.10.2010, 09:58 [ТС] | 4 |
Еще раз, отчет построен: Запрос1 - Запрос2(перекрестный). > Отчет
Интересная штука. 1. На базе запроса (минуя перекрестный) создал отчет и в нем использую те же подстановки, с того же поля со списком, все работает. (Т.е. Запрос1 > Отчет) 2. При ручном вводе в условия Запрос1 все работает (т.е. Запрос1 - Запрос2(перекрестный). > Отчет), при попытке выбрать с поля со списком значения параметра для условия запроса выдается сообщение, выше приведенное. Получается, как только между Запросом1 и Отчетом вклинивается перекрестный запрос Форма Отчеты перестает обнаруживаться, что же может быть? Благодарю всех.
0
|
1 / 1 / 0
Регистрация: 09.04.2010
Сообщений: 459
|
|
06.10.2010, 10:21 [ТС] | 5 |
Эксперимент следующий:
1. В условии поля запроса «Запрос1» пишу [Введите значение параметра]. 2. Запускаю на выполнение «Запрс2_перекрестный» и уже вместо «Введите значение параметра» я получаю сообщение, что : ‘[Введите значение параметра]’ не распознается базой данных Microsoft Jet как допустимое имя поля или выражение. Наверное ближе к разгадке? Пожалуйста помогите. Не хочется писать шесть запросов вместо двух.
0
|
4 / 4 / 0
Регистрация: 15.09.2010
Сообщений: 228
|
|
08.10.2010, 07:34 | 6 |
Задай параметр в запросе....
В запросе, в котором имеет место быть '[Forms]![Отчеты]![NasPunkt]' перед Select-ом пишешь: Parameters [Forms]![Отчеты]![NasPunkt] Long; Select.......... (Long - если тип данных числовой... Text(255) - если текстовый)... Или можно в конструкторе - Параметры- Параметр=[Forms]![Отчеты]![NasPunkt],Тип данных=Текстовый
0
|
1 / 1 / 0
Регистрация: 09.04.2010
Сообщений: 459
|
|
08.10.2010, 16:57 [ТС] | 7 |
Deminik, спасибо пошло!
Вот в таком виде. PARAMETERS [Forms]![Отчеты]![SEK] Text ( 255 ); Подскажите еще, допустим в поле со списком выбирается сектор, имеется ввиду: Частный, Государственный или же и то и другое вместе. Так вот отдельно 'Част' или 'Гос' (так у меня в поле со списком) выбираются, а сразу и то и другое не получается. Если в условии запроса я пишу 'Гос' OR 'Част', у меня выводится в отчете все, а если такое же условие в поле со списком выбираю для условия запроса, не хочет. Я думаю Вы поняли мою проблему. Как быть в данном случае? Благодарю.
0
|
4 / 4 / 0
Регистрация: 15.09.2010
Сообщений: 228
|
|
08.10.2010, 17:03 | 8 |
Какой источник строк поля со списком ?
0
|
1 / 1 / 0
Регистрация: 09.04.2010
Сообщений: 459
|
|
08.10.2010, 17:12 [ТС] | 9 |
Источником строк является отдельная таблица, где в поле имеются:
Гос Част 'Гос' OR 'Част' Так вот первые две идут, а третья нет. А когда третье выражение в условие запроса отдельно помещаю, все идет.
0
|
4 / 4 / 0
Регистрация: 15.09.2010
Сообщений: 228
|
|
08.10.2010, 18:39 | 10 |
Акес все верно делает.... возможно запрос придеться формировать динамически.... типа: если поле='ВСЕ' то выбираем все записи, иначе где поле в таблице = полю на форме...
0
|
4 / 4 / 0
Регистрация: 15.09.2010
Сообщений: 228
|
||||||
08.10.2010, 20:20 | 11 | |||||
Если в главной таблице этот вид собственности хранится как текст, а не код:
Главная таблица - Текстовое поле 'VidSobstv' (может быть 'Част' или 'Гос') Поле со списком 'VidSobstv'... его Тип источника строк - Список значений его Источник строк - '< ВСЕ >';'Част';'Гос' его Число столбцов - 1 его Присоединенный столбец - 1 На открытие отчета:
0
|
1 / 1 / 0
Регистрация: 09.04.2010
Сообщений: 459
|
||||||
08.10.2010, 22:24 [ТС] | 12 | |||||
У меня с источником строк так как Вы говорите все.
Но не плучается, ниже приведенные строки функции 'красные' Ошибка компиляции.
0
|
4 / 4 / 0
Регистрация: 15.09.2010
Сообщений: 228
|
||||||
08.10.2010, 23:27 | 13 | |||||
>>> У меня с источником строк так как Вы говорите все.
>>> Но не плучается, ниже приведенные строки функции 'красные' >>> Ошибка компиляции. >>> strSQL = strSQL & iif(Forms!MyForm!СЕК<> '< ВСЕ >', _ >>> ' Where СЕК= '' & Forms!MyForm!СЕК& ''', '') В этой строке ' Where СЕК= '' & Forms!MyForm!СЕК& ''', '') - 'СЕК' и '&' идут слитно - раздели пробелом Forms!MyForm!СЕК & ''' А вообще, это не 2 строки, а одна: strSQL = strSQL & iif(..., ..., ...) >>> А 'MyForm' оставлять так или это форма 'Отчеты'. А имя формы/отчета, которое я выдумал для примера.... Естественно оно должно быть, как в твоей БД... Чуть-чуть оптимизируем код:
0
|
1 / 1 / 0
Регистрация: 09.04.2010
Сообщений: 459
|
|||||||||||
09.10.2010, 08:59 [ТС] | 14 | ||||||||||
Вместо ниже приведенных имен я пробывал вводить имена отчета и таблица (поля со списком) - всеодно не хочет. MyReport MyTable Или эти остаются так, как у ВАс? Спасибо.
0
|
0 / 0 / 0
Регистрация: 20.06.2009
Сообщений: 56
|
||||||
09.10.2010, 12:10 | 15 | |||||
А если так:
0
|
1 / 1 / 0
Регистрация: 09.04.2010
Сообщений: 459
|
||||||||||||||||
09.10.2010, 12:43 [ТС] | 16 | |||||||||||||||
Изменил
Выбирает 'Гос' и 'Част' , а на 'Все' попрежнему говорит, что не распознается ядром..... Заппрос на базе которого все построенно:
Еще, у меня отчет открывается кнопочкой, для чего присутствует еще одна функция, приведенная ниже. Они не конфликтуют случайно?
0
|
1 / 1 / 0
Регистрация: 09.04.2010
Сообщений: 459
|
|||||||||||||||||||||
09.10.2010, 21:04 [ТС] | 17 | ||||||||||||||||||||
Чтобы меньше терять Вам времени, сообщаю итог по данной теме.
Ребята, описываю еще раз проблему. Отчет построен на базе перекрестного запроса 'Х', который, в свою очередь построен на базе простого запроса 'Y'. 1. Отчет открывается кнопкой с формы 'Отчеты', где с поля со списком выбирается вид сектора 'Гос' или 'Част'. Поле со списком построено на базе отдельной таблицы «Sec». Из-за того, что отчет построен на базе перекрестного запроса, открыть отчет не удавалось, было сообщение о том, что «не распознается базой данных Microsoft Jet как допустимое имя поля или выражение.» По рекомендации Deminik, в запрос была добавлена строка: PARAMETERS [Forms]![Отчеты]![SEK] Text ( 255 ); Проблема была решена. 2. С целью уменьшения количества запросов, необходимых для создания отчетов, я разместил в таблице «Sec», в поле «Сектор» такие записи: «Гос», «Част» и «Все». Хотелось бы, чтобы при выборе в списке «Все», в отчет попадали и «Гос» и «Част» секторы. Deminik предложил для этой цели использовать функцию:
Telekast предлагает видоизменение этой строки
«Не распознается базой данных Microsoft Jet как допустимое имя поля или выражение.» То же самое сообщение выдается, если я эту функцию убираю с модуля формы «Отчеты» вообще. Кроме того, такая штука, когда функция вообще отсутствует в модуле и я открываю отчет с параметром «Все», просто выдается сообщение «Не распознается базой данных Microsoft Jet как допустимое имя поля или выражение.».Если выбираю другие параметры условия, все работает. Если я помещаю функцию в модуль формы «Отчеты», то ситуация другая: При выборе «Все» сначала получаю то же сообщение, но если я после этого стану на строку, допустим, «Гос», то отчет откроется с правильно выбранными данными, но при этом в таблице «Sec», на базе которого построено поле со списком строка «Все» заменится на «Гос». Благодарю всех, за оказание помощи.
0
|
09.10.2010, 21:04 | |
09.10.2010, 21:04 | |
Помогаю со студенческими работами здесь
17
Ограничение поля со списком по полю текущей записи запроса Необходимо передать из поля данные в условие отбора запроса Выбор значения из поля со списком, исходя из предыдущего поля со списком Тема Подскажите как сделать так чтобы данные поля со списком брались из запроса, но если он пустой то из таблицы . Значение поля со списком по значениям другого поля со списком Выполнение запроса и построитель выражений. Поля появляются, а значения не вытягивает в поля запроса Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |