powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Повтор сообщения об ошибке
16 сообщений из 16, страница 1 из 1
Повтор сообщения об ошибке
    #32495248
Benzin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблица, логическое поле(флажок). На базе таблицы - форма, где установкой флажков отмечаются записи. В начале процедуры - проверка(вызов еще одной процедуры), что хоть один флажок установлен, иначе - сообщение об ошибке. Сама проверка это возврат числа записей рекордсета:
Код: plaintext
1.
2.
3.
SELECT [Temp].blnIn
FROM [Temp]
GROUP BY [Temp].blnIn
HAVING ((([Temp].blnIn)= -1 ));
.
Проблема в том, что сообщение об ошибке повторяется три раза! В другой же процедуре все работает.
Базу сжимал, восстанавливал, компилировал - не помогает!
...
Рейтинг: 0 / 0
Повтор сообщения об ошибке
    #32495263
Фотография 2ПОЙ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот это возврат числа записей где флажок не =0?
Код: plaintext
1.
2.
3.
SELECT [Temp].blnIn
FROM [Temp]
GROUP BY [Temp].blnIn
HAVING ((([Temp].blnIn)= -1 ))


Скорее так
Код: plaintext
1.
2.
3.
SELECT Count(T.blnin) as KolVo 
FROM Temp T
WHERE T.Blnin<&gt ;0 
...
Рейтинг: 0 / 0
Повтор сообщения об ошибке
    #32495264
Benzin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обрезал код до минимума. Вот "основная" процедура:
Код: plaintext
1.
2.
3.
4.
5.
Function fnDogInBloc()
If Not Выделено Then
Exit Function
Else
End If
End Function
, а вот как происходит проверка:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Private Function Выделено() As Boolean
Dim rs As Recordset
Application.RunCommand acCmdSelectRecord
Set rs = CurrentDb.OpenRecordset( "qВыделено" )
If rs.RecordCount >  0  Then
   Выделено = True
Else
   Выделено = False
   MsgBox  "Не отмечена ни одна запись!" 
End If
Set rs = Nothing
End Function
Структуру запроса "qВыделено" показал в первом сообщении. В режиме отладки посмотрел: после вызова проверяющей процедуры, переход на строку "Exit Function"(возвращается False) и тут же снова вызов проверки. И так три раза. Замена всех названий на латинские тоже ничего не дала.
...
Рейтинг: 0 / 0
Повтор сообщения об ошибке
    #32495267
Фотография 2ПОЙ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вроде все гуд.
А откуда вызывается
Код: plaintext
Function fnDogInBloc()
...
Рейтинг: 0 / 0
Повтор сообщения об ошибке
    #32495274
Benzin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 2ПОЙ:
1.Во, интересно:
Код: plaintext
1.
2.
SELECT Count([Temp].blnIn) AS Count_blnIn
FROM [Temp]
HAVING (((Count([Temp].blnIn))= -1 ));
возвращает 0, а :
Код: plaintext
1.
2.
SELECT Count([Temp].blnIn) AS Count_blnIn
FROM [Temp]
HAVING (((Count([Temp].blnIn))<&gt ;0 ));
возвращает число всех строк. Что за хрень?!
2.fnDogInBloc вызывается из макроса, который повешен на пункт контекстного меню.
Повторю: там есть еще две похожие процедуры и обе работают.
Импортировал все в новую базу - без результата...
...
Рейтинг: 0 / 0
Повтор сообщения об ошибке
    #32495275
Фотография 2ПОЙ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Benzin
Короче так у тебя функция троит, может ее макрос три раза вызывает
По SQL:
Код: plaintext
1.
2.
SELECT Count([Temp].blnIn) AS Count_blnIn
FROM [Temp]
HAVING (((Count([Temp].blnIn))= -1 ));

Возвращает 0 потому что количетсво записей в таблице Temp не может
быть = -1 по сути, даже если записей нету то есть их кол-во равно 0 но никак не -1
Я же табе написал как надо:
Код: plaintext
1.
2.
SELECT Count([Temp].blnIn) AS Count_blnIn
FROM [Temp]
WHERE [Temp].blnIn<&gt ;0  'То есть не выделен

И никакого counta в условии не надо
...
Рейтинг: 0 / 0
Повтор сообщения об ошибке
    #32495276
Фотография 2ПОЙ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
SELECT Count([Temp].blnIn) AS Count_blnIn
FROM [Temp]
WHERE [Temp].blnIn<&gt ;0  

; - это просто опечатка сорри
...
Рейтинг: 0 / 0
Повтор сообщения об ошибке
    #32495277
Фотография 2ПОЙ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тфу мля
Код: plaintext
1.
...
WHERE [Temp].blnIn<&gt ;0  
...
Рейтинг: 0 / 0
Повтор сообщения об ошибке
    #32495278
Фотография 2ПОЙ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АААА! Владимир Саныч у нас ГЛЮК!
Пишем:
WHERE [Temp].blnIn<>0
а если в теги кода заключить то
перед 0 появляется ;
Код: plaintext
WHERE [Temp].blnIn<&gt ;0 


Срочно премите меры а то мы с Benzinom так
к результату не придем!
...
Рейтинг: 0 / 0
Повтор сообщения об ошибке
    #32495280
Benzin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все! Исправил!!!
В аргументе макроса, после названия программы не было парных скобок !
И кто мне объяснит почему троило?
...
Рейтинг: 0 / 0
Повтор сообщения об ошибке
    #32495281
Фотография 2ПОЙ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Benzin
Потому что до сих пор юзаешь макросы! Забей на них!
...
Рейтинг: 0 / 0
Повтор сообщения об ошибке
    #32495302
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
WHERE [Temp].blnIn<>0
Код: plaintext
1.
WHERE [Temp].blnIn<&gt ;0 

И правда глюк... Щас капнем.
...
Рейтинг: 0 / 0
Повтор сообщения об ошибке
    #32495313
Фотография 2ПОЙ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир Саныч а ты думал я тебе врать стану!!??
...
Рейтинг: 0 / 0
Повтор сообщения об ошибке
    #32495316
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Я хотел сам насладиться глюком. Уже капнуто. :^)
...
Рейтинг: 0 / 0
Повтор сообщения об ошибке
    #32495377
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторИ кто мне объяснит почему троило?
Не помню, где именно, но пару раз на форуме встречал (да и не на форуме:).
Насколько мне память не изменяет, это глюк, который лечится введением переменной-флажка, сбрасываемой перед инициацией первого запуска и устанавливоемой после успешного завершения. Т.е. примерно так:

dim f as boolean

sub a()
f=false
b ' "Затраивающаяся" процедура
end sub

sub b()
if not f then
work
f=true
endif
end sub
...
Рейтинг: 0 / 0
Повтор сообщения об ошибке
    #32495462
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Баг исправлен.\r
/topic/88623#647995
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Повтор сообщения об ошибке
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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