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

Помогите, пожалуйста, с моей проблеммкой.
Борис
...
Рейтинг: 0 / 0
17.09.2003, 11:05
    #32267388
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В дополнение к вопросу по запуску отчета, основанного на запросе с параметрами..
Можно сделать временный запрос с динамическим селектом. О том, где его хранить, - см.:\r
\r
/topic/48441
...
Рейтинг: 0 / 0
17.09.2003, 12:04
    #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
17.09.2003, 12:07
    #32267512
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В дополнение к вопросу по запуску отчета, основанного на запросе с параметрами..
Составляем стринг, который выглядит точно как приведенный, но на месте параметров стоят их значения. Заносим этот стринг в свойство SQL запроса.
...
Рейтинг: 0 / 0
17.09.2003, 12:07
    #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
17.09.2003, 12:11
    #32267525
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В дополнение к вопросу по запуску отчета, основанного на запросе с параметрами..
Не-не-не! Виктор! Проблема-то началась с того, что это не работает в перекрестном. Надо не Forms..., а именно значение.
...
Рейтинг: 0 / 0
17.09.2003, 12:22
    #32267557
AlTis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В дополнение к вопросу по запуску отчета, основанного на запросе с параметрами..
Сталкивался с проблемой. Решил следующим образом:
Перекрёстный запрос делал на основе запроса на выборку, в котором указывал параметры и условие WHERE (по аналогии Senin Viktor)
...
Рейтинг: 0 / 0
17.09.2003, 12:23
    #32267563
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В дополнение к вопросу по запуску отчета, основанного на запросе с параметрами..
2Cаныч
>Не-не-не! Виктор! Проблема-то началась с того, что это не работает в перекрестном.
Да-да-да

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

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

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

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

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

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

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

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

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

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

Debug.Print [Пн].ControlSource

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


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