Почему вылетает Access XP???

Galustov
Дата: 31.05.2004 09:56:47
У меня есть запрос со сложным условием (три вложенных IIF()). Так вот если я пишу в конструкторе условие, сохраняю запрос, то потом он открывается нормально. Однако если я этот запрос импортирую в другой mdb, то при попытке его открыть Access просто вырубается!!!
Тоже самое происходит и после нескольких раз использования ранее "рабочего" запроса.

Дело видимо в сложности условия, хотя мне непонятно почему я запрос даже в конструкторе открыть не могу?! тоже всё вырубается без каких-либо выдаваемых ошибок. Если условие убрать - всё ок.

Выход я нашёл, но мне просто интересно может кто-то знает в чём дело?

Спасибо
paparome
Дата: 31.05.2004 10:01:33
- библиотеки какие-нить отвалились
- попробуй поля в запросе как-нить пообзывать (типа iif(...) as f1)
- может в новой mdb таблиц нет (утеряны связи)

Ну - это так - предположения и шаманские танцы
Лох Позорный
Дата: 31.05.2004 10:02:08
Версия аксеса, сервис-паки на аксес, на Jet, последний mdac?
Galustov
Дата: 31.05.2004 12:56:18
Стоит Office XP с сервис-паками. Win XP с сервис-паками
Причём наблюдается такая картина, что если я удалю какую-нибудь табличку, участвующую в запросе - запрос открывается и Access не глючит, просто как обычно табличка удалённая висит только с наименованием и поля из этой табличка в "Выражение:" преобразуются...
Условие у меня стоит только на одном поле: "Тип вида ОС:IIf(тут погнали условия)". Смысл в том, что значения вида основных средств проверяются на вхождение в определённую группу значений и полю присваивается к примеру значение "трубопровод" если вид ОС к примеру 00302305 (это я от балды набил)
В итоге я просто создал табличку дополнительную, где все шифры видов ОС пометил на вхождение в группу и цепляю эту табличку в запросе. Проблема не в решении, а в том, что хотелось бы узнать что это за глюк...
Специальные сервис-паки на аксесс я не ставил
Galustov
Дата: 31.05.2004 13:44:04
Чувствую внизу никто не разглядит этот топик... Поднимем немного
Вопрос тот же...
АлексейК
Дата: 31.05.2004 13:57:14
если хочешь решить проблему то вынеси условия своего ветвистого iif в пользовательскую функцию и высчитывай в ней

кстати, не забудь обнулять переменные.

вот пример проверяющий сумму и возвращающий да или нет

public function testval (x,y,z) as boolean
dim myval as integer
myval = 0
myval = x + y + z

if myval = 10 then
testval = true
else
testval = false
end if

end function
Galustov
Дата: 31.05.2004 13:59:39
Спасибо АлексейК, но мне не решить проблему важно (её я решил см. выше как), а узнать про баг. Вдруг это ещё на чём-то скажется, что так просто нельзя будет обойти!

Жду ответа, однако видимо не дождусь
paparome
Дата: 31.05.2004 14:00:35
Э-э-э

глупо - но скажу:
сжать/восстановить?
Galustov
Дата: 31.05.2004 14:04:33
Сжать-восстановить не катит... это я пробовал
paparome
Дата: 31.05.2004 14:07:18
Я ж предупредил, что глупость :)