Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS Access > Ошибка при выполнении запроса


Автор: ramzes 16.11.2005, 13:31
Добрый день!

Такая проблема: существует запрос на объединение 3-х таблиц. Запрос работает нормально, но при попытке его отредактировать, или включить данные этого запроса в другой запрос Access выдает сообщение об ошибке: Ядро базы данных Microsoft Jet не может найти входную таблицу или запрос и т.п..... И после этого сообщения запрос перестает выполняться. Т.е. при обращении к нему выдается эта ошибка. Мб кто-нить знает почему так происходит?

Спасибо!


Автор: Akina 16.11.2005, 13:52
Приведите структуры таблиц и текст(ы) запроса(ов).

Потому как, например, запросов на объединение таблиц не бывает... бывают запросы на выборку, изменение, удаление и пр...

Автор: ramzes 16.11.2005, 14:24
Код
:

 SELECT дата, номер, SUM(сумма1) as SUM1, SUM(сумма2) as SUM2
FROM 
(
SELECT дата, номер, сумма1, 0 as сумма2 FROM Запрос1
UNION
SELECT дата, номер, 0 as сумма1, сумма2 FROM Запрос2
)
GROUP BY  дата, номер; 




Автор: bas 16.11.2005, 14:55
Цитата(ramzes @ 16.11.2005, 13:31)
но при попытке его отредактировать

Такого рода запросы только для чтения

Автор: ramzes 16.11.2005, 15:24
Самое интетересное, что на базе этого запроса постоено куча других запросов и всё работало нормально. Изначально всё было нормально, но база "росла" и в определенный момент стала вылазить эта ошибка.
Мб есть способ иначе сделать объединение?

Автор: Akina 16.11.2005, 15:54
Запрос нормальный - хотя и безобразный. Во всяком случае, за ним просматривается либо какая-то совершенно жуткая структура исходных данных, либо использование уже существующих запросов вследствие нежелания писАть каждый запрос с нуля...

В рамках Аксесса для ЭТОГО запроса нужно было идти вообще по иному пути: сперва сделать выборку из каждой исходной таблицы только пары номер/дата, сделать их UNION, а потом к полученной таблице (запросу) привязать таблицы с суммами через right join по полям номер/дата и на основе полученного агломерата считать суммы сумм.

По сабжу - ошибка ядра Jet не связана с данным запросом как таковым. Возможно, просто возникают кольцевые блокировки или еще что-то, мешающее получить промежуточные данные.

Автор: ramzes 5.12.2005, 20:10
Проблема решена: я переписал запросы (убрал запросы к запросам) и пока вроди бы работает без глюков.
Спасибо, Akina

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)