powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / В дополнение к вопросу по запуску отчета, основанного на запросе с параметрами..
25 сообщений из 75, страница 1 из 3
В дополнение к вопросу по запуску отчета, основанного на запросе с параметрами..
    #32267385
borisb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В обсуждаемой ранее аналогичной теме не нашел ответ на интересующий меня вопрос - а как быть в случае ПЕРЕКРЕСТНОГО запроса? Пробовал указывать в нем вместо PARAMETERS ссылки типа forms!такаято!поле - не катит... Почему-то ругается на невозможность найти, хотя форма открыта и соответствующие поля заполнены:(. С указанием в PARAMETERS'ах - запрашивает пользователя, а надо автоматом, в программе!

Помогите, пожалуйста, с моей проблеммкой.
Борис
...
Рейтинг: 0 / 0
В дополнение к вопросу по запуску отчета, основанного на запросе с параметрами..
    #32267388
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Можно сделать временный запрос с динамическим селектом. О том, где его хранить, - см.:\r
\r
/topic/48441
...
Рейтинг: 0 / 0
В дополнение к вопросу по запуску отчета, основанного на запросе с параметрами..
    #32267505
borisb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну хорошо, а можно по-подробнее на примере?
Вот сам запрос:
---
PARAMETERS podrazd Text, godvar Long, mesyacvar Byte, nedelyavar Byte;
TRANSFORM nz(Sum(roundmy([vremya]/3600,2)),0) AS [Значение]
SELECT [Фамилия] & " " & [Имя] & " " & [Отчество] AS Сотрудник, Staff.Подразделение, Staff.ТабельныйНомер, AllTime.god, AllTime.mesyac, roundmy(Sum([vremya])/3600,2) AS [Итого за неделю]
FROM (AllTime INNER JOIN Staff ON AllTime.karta = Staff.НомерКарты) INNER JOIN Календарь ON AllTime.data = Календарь.Дата
WHERE (((Staff.Подразделение)=[podrazd]) AND ((AllTime.god)=[godvar]) AND ((AllTime.mesyac)=[mesyacvar]) AND ((Календарь.Неделя)=[nedelyavar]))
GROUP BY [Фамилия] & " " & [Имя] & " " & [Отчество], Staff.Подразделение, Staff.ТабельныйНомер, AllTime.god, AllTime.mesyac
PIVOT Choose(Weekday([data],2),1 & ' (Пн)',2 & ' (Вт)',3 & ' (Ср)',4 & ' (Чт)',5 & ' (Пт)',6 & ' (Сб)',7 & ' (Вс)');
---
суть его такова, что по каждому сотруднику выводится колонки с днями недели (определенной) и с опред.значениями... А в самих таблицах хранится инфа 1) по числам месяца людей со значениями; 2) таблица соответствия дат и дней недели (Календарь). Как сделать отчет по данному запросу, задавая программно при его открытии значения, указанные в PARAMETERS'ах?

Помогите, пожалуйста!
...
Рейтинг: 0 / 0
В дополнение к вопросу по запуску отчета, основанного на запросе с параметрами..
    #32267512
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Составляем стринг, который выглядит точно как приведенный, но на месте параметров стоят их значения. Заносим этот стринг в свойство SQL запроса.
...
Рейтинг: 0 / 0
В дополнение к вопросу по запуску отчета, основанного на запросе с параметрами..
    #32267515
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вместо PARAMETERS podrazd Text, godvar Long, mesyacvar Byte, nedelyavar Byte;
PARAMETERS Forms!ИмяФормы!podrazd Text, Forms!ИмяФормы!godvar Long, Forms!ИмяФормы!mesyacvar Byte, Forms!ИмяФормы!nedelyavar Byte;

ну и сотвественно в where меняешь на Forms!ИмяФормы!ИмяКонтрола
...
Рейтинг: 0 / 0
В дополнение к вопросу по запуску отчета, основанного на запросе с параметрами..
    #32267525
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Не-не-не! Виктор! Проблема-то началась с того, что это не работает в перекрестном. Надо не Forms..., а именно значение.
...
Рейтинг: 0 / 0
В дополнение к вопросу по запуску отчета, основанного на запросе с параметрами..
    #32267557
AlTis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сталкивался с проблемой. Решил следующим образом:
Перекрёстный запрос делал на основе запроса на выборку, в котором указывал параметры и условие WHERE (по аналогии Senin Viktor)
...
Рейтинг: 0 / 0
В дополнение к вопросу по запуску отчета, основанного на запросе с параметрами..
    #32267563
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Cаныч
>Не-не-не! Виктор! Проблема-то началась с того, что это не работает в перекрестном.
Да-да-да

Именно как я написал работать будет. И работает.
Ссылки на значения из форм надо ОБЯЗАТЕЛЬНО прописывать в Paramenters

> Надо не Forms..., а именно значение

а это кто писал: "Пробовал указывать в нем вместо PARAMETERS ссылки типа forms!такаято!поле - не катит... Почему-то ругается на невозможность найти, хотя форма открыта и соответствующие поля заполнены" ?

Так че нужно? и почему мой вариант не работает?
...
Рейтинг: 0 / 0
В дополнение к вопросу по запуску отчета, основанного на запросе с параметрами..
    #32267568
borisb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо! Указал в PARAMETERS'ах и WHERE Forms!xxx!поле - сработало! Схавало и отчет запустился наконец-то. Но... При отсутствии некот. полей в запросе (например, в запрашиваемой неделе, например 5 за июль, есть только Пн, Вт, Ср и Чт... В отчете существуют все поля недели... А отчет ругается на непонятно пока что (при открытии)....
Помогите уж еще чуть-чуть.

Борис
...
Рейтинг: 0 / 0
В дополнение к вопросу по запуску отчета, основанного на запросе с параметрами..
    #32267574
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Отчет ругается на отсутствие в запросе тех полей, на которых сидят контролы. Надо программно проверить их наличие и тем контролам, у которых поля не оказалось, сделать ControlSource = "".
...
Рейтинг: 0 / 0
В дополнение к вопросу по запуску отчета, основанного на запросе с параметрами..
    #32267575
borisb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дополненьице:
Соответственно, в отчете стоят поля с сурсами:
[1 (ВС)], [2 (ВТ)] и так далее (см. в инструкции PIVOT выше...)

Так вот, при отсутвии в выборке некот. полей ругается нецензурно непонятной ошибкой, т.е. не пишет в самих полях типа #Ошибка или #Имя, а просто не открывается :(
...
Рейтинг: 0 / 0
В дополнение к вопросу по запуску отчета, основанного на запросе с параметрами..
    #32267579
borisb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир, а ControlSource ставить можно при открытии (Превью, Печать) или только в конструкторе? У меня .mde, так что конструктор с последующем сохранением отпадает...
Спасибо!
...
Рейтинг: 0 / 0
В дополнение к вопросу по запуску отчета, основанного на запросе с параметрами..
    #32267581
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
На OnOpen все должно сработать.
...
Рейтинг: 0 / 0
В дополнение к вопросу по запуску отчета, основанного на запросе с параметрами..
    #32267602
borisb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пишу на Открытие отчета следующее:
On Error Resume Next
[Пн] = [1 (Пн)]
[Вт] = [2 (Вт)]
[Ср] = [3 (Ср)]
[Чт] = [4 (Чт)]
[Пт] = [5 (Пт)]
[Сб] = [6 (Сб)]
[Вс] = [7 (Вс)]
Типа, как я себе представляю, не будет указанного справа поля в выборке - не отобразит... Но: Не открывается с такой же ошибкой - пишет @Имя отчета@ не распознается ядром Jet как допустимое имя поля/выражение". Других методов, кроме OnOpen, нет...

Что еще может быть?
...
Рейтинг: 0 / 0
В дополнение к вопросу по запуску отчета, основанного на запросе с параметрами..
    #32267608
borisb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В предыдущем топике конечно имелось ввиду:
[Пн].ControlSource=[1 (Пн)]

и т.д..
...
Рейтинг: 0 / 0
В дополнение к вопросу по запуску отчета, основанного на запросе с параметрами..
    #32267619
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
= " 1 (Пн) "
...
Рейтинг: 0 / 0
В дополнение к вопросу по запуску отчета, основанного на запросе с параметрами..
    #32267623
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
А в конструкторе, надеюсь, они заданы пустыми?
...
Рейтинг: 0 / 0
В дополнение к вопросу по запуску отчета, основанного на запросе с параметрами..
    #32267628
borisb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот, поставив строку If err.Number > 0 Then MsgBox err.Number & " (" & err.Description & ")": err.Clear после каждого присвоения получил следующее: ругается на невозможность найти указанные поля, но как же так? Они (названия их) указаны в соответсвии получаемых в PIVOT запроса!
Блин, где же грабли?

Да, отчет уже открывается, но соответственно с пустыми интересующими полями...

Спасибо за помощь.
...
Рейтинг: 0 / 0
В дополнение к вопросу по запуску отчета, основанного на запросе с параметрами..
    #32267632
borisb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, в конструкторе они конечно Свободные ;).
Теперь, после замены на "" (вместо []) опять не открывается...
...
Рейтинг: 0 / 0
В дополнение к вопросу по запуску отчета, основанного на запросе с параметрами..
    #32267637
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
А если "[ ... ]" ?
...
Рейтинг: 0 / 0
В дополнение к вопросу по запуску отчета, основанного на запросе с параметрами..
    #32267643
borisb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, так тоже вообще не открывается :(.
Вообще заметил, что как только ставлю [Пн].ControlSource = [1 (Пн)] открывается но со всеми (даже где есть данные) пустыми полями, в остальных случаях не открывается...
...
Рейтинг: 0 / 0
В дополнение к вопросу по запуску отчета, основанного на запросе с параметрами..
    #32267651
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вариант: если не хочется разбираться с програмным отключением источников (в событии "открытие"), то перед выполнением TRANSFORM пополни набор сворачиваемых данных пустыми строками с нужными значениями в полях названий столбцов (юнионом). Так, чтобы свертка имела все столбцы в любом случае. Отсечь пустышки можно затем и SQL и кодом (форматирование).
...
Рейтинг: 0 / 0
В дополнение к вопросу по запуску отчета, основанного на запросе с параметрами..
    #32267652
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Предлагаю временно вернуть ControlSource'ы (хотя бы некоторые) в конструкторе и посмотреть на них при помощи

Debug.Print [Пн].ControlSource

в том же OnOpen. Может, там какая-нибудь разница в количестве пробелов или еще чём-нибудь в том же роде.
...
Рейтинг: 0 / 0
В дополнение к вопросу по запуску отчета, основанного на запросе с параметрами..
    #32267655
borisb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YES!!!!!
Получилось:
поставил "=[1 (Пн)]" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1
...
Рейтинг: 0 / 0
В дополнение к вопросу по запуску отчета, основанного на запросе с параметрами..
    #32267661
borisb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, поторопился...
Проверил только на выводимых в запросе полях :(.
На тех, кот. нет в выборке, спотыкается. Не открывается вообще...
Эх...
...
Рейтинг: 0 / 0
25 сообщений из 75, страница 1 из 3
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / В дополнение к вопросу по запуску отчета, основанного на запросе с параметрами..
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]