Страницы: 1
RSS
Глючит вба?
 
Всем привет.
Добавил в строку запроса два поля
Код
IIF(Подача='Подача','Прием','Подача') AS [Подача_соп], IIF(Результат='Победа','Поражение','Победа') AS [Результат_соп]
после чего начал глючит ексель.
Например меняю в вба Прием на Подача - на листе по прежнему остется прием.
Хочу пошагово выполнить процедуру - должно выполнятся условие Else - курсор выделяет Else желтым, потом перепрыгивает на End If не выполняя условие.

Как видно на скриншоте - в окне переменных тоже отображаются не переменные процедуры, а какая то непонятная штука...
При этом запрос выполняется с прежней строкой запроса.
После нескольких таких манипуляций ексель вырубылся.
Неужели причина в IIF?
Код
Sql_S = "SELECT Результат, Счет, SUM(IIF(Игрок='" & ig1 & "' AND Подача='Подача', SUMA))  AS [" & ig1 & "], SUM(IIF(Игрок='" & ig2 & "' AND Подача='Прием', SUMA))  AS [" & ig2 & "] FROM [счет$] WHERE Результат <> '' GROUP BY Результат, Счет  "
Else
Sql_S = "SELECT IIF(Подача='Подача','Прием','Подача') AS [Подача_соп], IIF(Результат='Победа','Поражение','Победа') AS [Результат_соп], Подача, Результат, Счет, SUM(IIF(Игрок='" & ig2 & "', SUMA))  AS [" & ig2 & "] FROM [счет$] WHERE Результат <> '' GROUP BY Подача, Результат, Счет  "
End If
Изменено: Dima S - 01.04.2014 13:31:16
 
Цитата
Dima S пишет:
Неужели причина в IIF?
Попробовать без него.
 
поставьте debug.print и посмотрите результаты переменной Sql_S в первом условии и во втором
-------------------
Изменено: B.Key - 01.04.2014 13:41:36
 
там видимо какой то глюк был.
открыл файл наново - уже в другом месте ошибка.
во всем по ходу виновата строка
Код
On Error GoTo erh

:oops:
Правильно ли я понимаю - если эта строка стоит в процедуре, а ошибка возникает в функции, вызываемой из процедуры - то этот обработчик действует и на функцию?
 
да
можете проверить :)

Код
Sub test()
On Error GoTo erh
a = nf(1)
erh:
End Sub

Function nf(s)
nf = s / 0
End Function
Изменено: B.Key - 01.04.2014 13:59:41
 
Цитата
Dima S пишет:
SUM(IIF(Игрок='" & ig2 & "', SUMA))
Я правильно понял, что у IIF два аргумента вместо трёх?
There is no knowledge that is not power
 
Цитата
Я правильно понял, что у IIF два аргумента вместо трёх?
да
 
Как бы мой вопрос подразумевал, что вместо двух аргументов должно быть три.
И конечный SQL запрос - в студию!
Изменено: Johny - 01.04.2014 14:37:18
There is no knowledge that is not power
 
Цитата
Как бы мой вопрос подразумевал, что вместо двух аргументов должно быть три
по моему - не обязательно.
проблема вроде решилась.
всем спасибо)
Страницы: 1
Наверх