powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / перекрестный запрос с условием (criteria)
24 сообщений из 49, страница 2 из 2
перекрестный запрос с условием (criteria)
    #32540435
Фотография Shark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Универсальное решение таких проблем- выгружать данные расчета во временную таблицу. К тому же работает веселее. Попросите тридцатую страницу отчета- она пойдет все пересчитывать. А с временной табличкой раз и готово.
...
Рейтинг: 0 / 0
перекрестный запрос с условием (criteria)
    #32540507
Pretorian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Shark
я так не умею 8(

или например такой вопрос:
таблица ГруппыЛюдей
у нее есть поля ДатаПрилета и ДатаОтлета
нужно сделать запрос, по которому оператор, введя интересующую его дату, узнает сколько человек на эту дату находятся в отеле
что-то я даже не представляю себе, как это сделать
ведь оператор должен вводить значение в несуществующее поле........
...
Рейтинг: 0 / 0
перекрестный запрос с условием (criteria)
    #32540513
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Была такой вопрос полгода назад
/topic/64777
...
Рейтинг: 0 / 0
перекрестный запрос с условием (criteria)
    #32540515
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а по поводу ввода - на форме делается свободное поле и в условие запроса построителем вводится это поле вместо [enter date]
...
Рейтинг: 0 / 0
перекрестный запрос с условием (criteria)
    #32540564
Pretorian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да, полгода назад у них было проблем не меньше, как я погляжу 8)

по поводу ввода
на форме? на какой форме? вообще- что раньше, форма или запрос? в условие вводится поле формы, а в значение запроса что?
...
Рейтинг: 0 / 0
перекрестный запрос с условием (criteria)
    #32540655
Фотография Shark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Я так не умею
Дык учись.
1 вариант
Создаешь объект QUeryDef, смотрящий на параметрический запрос на вставку(insert), присваиваешь ему параметры и execute его
Dim q1 as Dao.Querydef
Set q1=CurrentDb.Querydefs("МойЛюбимыйЗапрос")
q1.Parameters("p1")="blablabla"
q1.Execute
2варинт
Формируешь строчку запроса и выполняешь его
Dim lSQL as string
lSQL="insert ..." & param1 & ".."
DoCmd.RunSQL lSQL
За второй вариант меня вон испинали всего в соседнем топике:-)
А мне нравится(вариант, а не пинки)
...
Рейтинг: 0 / 0
перекрестный запрос с условием (criteria)
    #32541023
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторна форме? на какой форме? вообще- что раньше, форма или запрос? в условие вводится поле формы, а в значение запроса что?
Да на любой форме. В cвободное поле - вводим дату. Потом при открытии запроса, отчета данные идут из этого поля (форма, естественно, должна быть открыта) . Выглядит в SQL это так:
SELECT tbl1.field1
FROM tbl1
WHERE tbl1.field1=[Forms]![МояФорма]![MyField];
...
Рейтинг: 0 / 0
перекрестный запрос с условием (criteria)
    #32549947
Pretorian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алекс, спасибо. С формой получилось! А даже сам удивился и пивом подавился 8)

Остаются на повестке дня два вопроса:

1. почему обычный запрос с условием выборки (ну типа штука в квадратных скобках 8)) нормально выполняется, а перекрестный запрос с условием не выполняется?

пишет, что типа ядро Микрософт Джет таких штук не знает и все такое... 8((((

2. есть таблицы Отели, Люди и ТипыЛюдей (дите-не дите)
в отели приезжают люди и надо знать их кол-во по каждому отелю
хочу сделать такой запрос:

каждому отелю соответствует кол-во людей, приехавших в него
каждому отелю соответствует кол-во взрослых, приехавших в него
каждому отелю соответствует кол-во детей, приехавших в него

делал как велел Алекс 8) и запрос заработал
но отчет на его основе - фиг!
(многоуровневое предложение GROUP BY не допускается в подчиненном запросе)
с временными таблицами не умею
как бы это иначе сделать? ведь вроде проосто ж все! ан нет, не работает... 8(

хелп плиз кто может 8)
...
Рейтинг: 0 / 0
перекрестный запрос с условием (criteria)
    #32549986
Pretorian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
лениво разбираться в моем бреде, хоть подскажите, плз, в какую сторону думать, что еще можно попробовать....
...
Рейтинг: 0 / 0
перекрестный запрос с условием (criteria)
    #32550023
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Попробовать указать его явно в параметрах (пример рабочий, не указывать в PARAMETERS - будет ругаться)
Код: plaintext
1.
2.
3.
4.
5.
6.
PARAMETERS [Forms]![Форма4]![Поле0] DateTime;
TRANSFORM Sum(t1.f2) AS [Значение]
SELECT t1.f5, Sum(t1.f2) AS [Итоговое значение f2]
FROM t1
WHERE (((t1.f3)=[Forms]![Форма4]![Поле0]))
GROUP BY t1.f5
PIVOT t1.f1;
2. Штука редкая и непонятная, ни разу не нарывался (а судя по форуму тоже редко у кого встречается) - я бы проверил на других версиях Ассеss, накатил бы сервис-паки. Не получилось бы тогда через подчиненные отчеты, как я писал, или временные таблицы как советовал Shark.
...
Рейтинг: 0 / 0
перекрестный запрос с условием (criteria)
    #32550027
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По поводу временных таблиц. Дабы не слишком заморачиваться - берем тот рабочий запрос (который не лезет в отчет) открываем в конструкторе и в меню "Запрос" выбираем Создание таблицы - указываем имя таблицы - к примеру - TempTbl. Она-то и будет источником для отчета. Запрос на создание таблицы готов.
В коде процедуры обработки события нажатия кнопки, которой открывается отчет пишем
Код: plaintext
1.
2.
3.
DoCmd.SetWarnings False
DoCmd.OpenQuery "МойЗапрос"
DoCmd.SetWarnings True
DoCmd.OpenReport "МойОтчет"
SetWarnings - это чтоб не мявкал на замене временной таблицы
Постарался максимально упростить, я к примеру, предпочитаю не держать такие запросы сохраненными, а делать
currentdb.execute "Select...............into......", dbfailonerror
при этом лишним становится SetWarnings.
Если не хочется, чтобы болталась всегда эта таблица - на закрытии отчета можно сделать
DoCmd.DeleteObject acTable, "TempTbl"
или
currentdb.execute "DROP table TempTbl", dbfailonerror
...
Рейтинг: 0 / 0
перекрестный запрос с условием (criteria)
    #32554469
Pretorian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр, спасибо за неослабевающее внимание к моей проблеме!

1. про параметры не оч понял
совершенно ОБЫЧНЫЙ запрос, ЛЮБОЙ!
если ставишь типа запроса "выборка", то работает с условием
если тип перекрестный, с условием не работает никак
это что, глюк Аксеса?

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

3. похоже, я понял, почему мне никто не может помочь
я скрывал часть логики в объяснении, чтобы лишний раз не запутывать
думал, сам потом смогу разобраться 8)

ПОЛНЫЙ ВОПРОС:

группы людей прилетают в отели на самолетах
оператору нужно узнать (введя интересующую дату), сколько прилетело на нужную дату на каждом самолете людей (детей+взрослых) в данный отель

ИСХОДНАЯ ЛОГИКА ТАБЛИЦ:

SamoletsArrive(ТаблицаСамолеты): SamoletArriveId, SamoletArriveName

Hotels(ТаблицаОтели): hotelId, hotelName

Groupes(ТаблицаГруппы): groupId, groupHotelName, groupDateArrive (дата прилета), groupSamoletArrive

Paxes(ТаблицаЛюди): paxId, paxType(Дядя=1, Тетя=2, Ребенок=3, Дите=4), PaxGroup (его группа)

ДЕЛАЮ ТАК:

SELECT Groupes.groupId, Groupes.groupDateArrive, SamoletsArrive.SamoletArriveName, Hotels.hotelName, (select count(Paxes.paxId) from Paxes where (((Paxes.paxType)>2) and (Paxes.Paxgroup)=groupes.groupId)) AS Childov, (select count(Paxes.paxId) from Paxes where (((Paxes.paxType)<=2) and (Paxes.Paxgroup)=groupes.groupId)) AS Adults, Count(Paxes.paxId) AS [Count-paxId]
FROM Hotels INNER JOIN ((SamoletsArrive INNER JOIN Groupes ON SamoletsArrive.SamoletArriveId = Groupes.groupSamoletArrive) INNER JOIN Paxes ON Groupes.groupId = Paxes.PaxGroup) ON Hotels.hotelId = Groupes.groupHotelName
GROUP BY Groupes.groupId, Groupes.groupDateArrive, SamoletsArrive.SamoletArriveName, Hotels.hotelName
HAVING (((Groupes.groupDateArrive)=[enter date]))
ORDER BY Hotels.hotelName DESC;

все выполняет
просто лапочка 8)
но в отчет не лезет!!!!!

если пытаюсь сделать то же самое в перекрестном запросе, не дает сделать дату условием (ну чтобы оператор ее мог сам ввести)
...
Рейтинг: 0 / 0
перекрестный запрос с условием (criteria)
    #32554524
Фотография Ирча
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может я не в тему, тогда не пинайте ногами, плииззз.
когда мне нужен перекрестный запрос с параметрами,
я делаю запрос на выборку из той таблици, в которой надо проводить отбор,
вешаю туда условие,
а в перекрестный вместо таблици - этот запрос
Всегда работает без проблем
...
Рейтинг: 0 / 0
перекрестный запрос с условием (criteria)
    #32554593
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pretorian2. временные таблицы
хорошо, сделали отчет, создающий таблицу
но теперь на его основе не создается отчет вообще (при попытке создания отчета на базе этого запроса, данный запрос просто не отображается в окошке выбора запроса)

Мля. Внимательно читать надо.
По поводу временных таблиц. Дабы не слишком заморачиваться - берем тот рабочий запрос (который не лезет в отчет) открываем в конструкторе и в меню "Запрос" выбираем Создание таблицы - указываем имя таблицы - к примеру - TempTbl. Она-то и будет источником для отчета. Запрос на создание таблицы готов.

Из кода на кнопке же видно, что сначала запускается запрос который создает таблицу, потом отчет
Еще раз - источником записей отчета служит вновь созданная таблица, а не запрос!
...
Рейтинг: 0 / 0
перекрестный запрос с условием (criteria)
    #32554683
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pretorian1. про параметры не оч понял
совершенно ОБЫЧНЫЙ запрос, ЛЮБОЙ!
если ставишь типа запроса "выборка", то работает с условием
если тип перекрестный, с условием не работает никак
это что, глюк Аксеса?
Вот пример.
...
Рейтинг: 0 / 0
перекрестный запрос с условием (criteria)
    #32555068
Pretorian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Ирча
сделал, как ты говоришь
не работает
та же ошибка

2Александр
звиняюсь, не досмотрел 8)
да, отчет открывается! и работает, черт его дери 8)

запрос с параметрами тоже работает! я скачал архив, понял на его примере, как делать, и это просто великолепно! (можно немного позанудничать? 8) как я могу сделать такой финт, не прибегая к окошку "сиквел вью"? никак, похоже! вот и плюсы системы билла!)

короче, теперь у меня есть два способа решить мою проблему
и я не знаю, какой выбрать
прям буриданов осел 8)))

Спасибо, Александр. Если занесет в Питер, с меня много пива 8)
...
Рейтинг: 0 / 0
перекрестный запрос с условием (criteria)
    #32555321
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pretorianкак я могу сделать такой финт, не прибегая к окошку "сиквел вью"? никак, похоже! вот и плюсы системы билла!)
Элементарно. Конструктор - свойства запроса (меню Вид или правой кнопкой мыши)- параметры - дальше все ясно

Pretorian
короче, теперь у меня есть два способа решить мою проблему
и я не знаю, какой выбрать

Это дело личных предпочтений. Я, к примеру, не очень люблю временные таблицы.
Pretorian
Если занесет в Питер, с меня много пива 8)
В сентябре в отпуске буду
...
Рейтинг: 0 / 0
перекрестный запрос с условием (criteria)
    #32555344
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прошу извинить, неточно указал.
конструктор- менюЗапрос - параметры
или правой кнопкой - параметры
...
Рейтинг: 0 / 0
перекрестный запрос с условием (criteria)
    #32555530
DIMGAN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может я не совсем понял вытекающую проблему (слишком уж длинный ряд комментариев :)) но такие проблемы помойму решаются не напрямую а с помощью спец средств. Есть в Ексель такие СВОДНЫЕ ТАБЛИЦЫ, в Дельфи и Си Буилдер есть компонент для построения OLAP кубов... там можно интуитивно любые срезы получать
...
Рейтинг: 0 / 0
перекрестный запрос с условием (criteria)
    #32556099
Pretorian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Александр
понял 8)

пиши, когда будешь точно знать дату приезда
попьем пивка 8)
мыло: kecalcoatl сабака мэйл ру

2DIMGAN
если база сама этого не умеет и надо привлекать спец. средства, то нафига такая база? я ж ничего нереального от нее не требую
...
Рейтинг: 0 / 0
перекрестный запрос с условием (criteria)
    #32556155
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
quetzalcoatl?
...
Рейтинг: 0 / 0
перекрестный запрос с условием (criteria)
    #32556405
Pretorian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Владимир Саныч
нет
именно так, как написано 8)
...
Рейтинг: 0 / 0
перекрестный запрос с условием (criteria)
    #32556536
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Я просто переспросил, та ли птица имеется в виду...
...
Рейтинг: 0 / 0
перекрестный запрос с условием (criteria)
    #32556942
Pretorian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
це не птица
це змеюка 8)
...
Рейтинг: 0 / 0
24 сообщений из 49, страница 2 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / перекрестный запрос с условием (criteria)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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