powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Проблема с циклом Do ... Loop
23 сообщений из 23, страница 1 из 1
Проблема с циклом Do ... Loop
    #32561620
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При первой итерации отрабатывает только первый запрос, а при последней - все. В чем тут дело?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
Set RBCharge = CurrentDb.OpenRecordset("select distinct operid_2 from bill_charge where " _
                & "[Реф №] = '" & [Forms]![заказ]!ref & "' and OperID_2 is not null")
If Not RBCharge.EOF Then
    RBCharge.MoveFirst
        Do Until RBCharge.EOF
            
            SQLStr = "INSERT INTO __TEMP_ОПЕРАТОР_Характеристики_заказа ( operid_2, tbl_id, [Реф №], " _
                    & "Наименование, Дата1, Дата2, валюта, [От А+], [От А-]) " _
                    & "SELECT operid, 'bill_charge', [Реф №], Наименование, Дата1, дата2, валюта, " _
                    & "round(Эквивалент1, 2), round(Эквивалент2, 2)  " _
                    & "FROM __TEMP_Характеристики_заказа_bill_charge WHERE ((([OperID_2])=" & RBCharge!OperID_2 & "))"
            CurrentDb.Execute SQLStr
            
            SQLStr = "INSERT INTO __TEMP_ОПЕРАТОР_Характеристики_заказа ( operid_2, tbl_id, [Реф №], " _
                    & "Наименование, Дата1, Дата2, валюта, [61+], [61-]) " _
                    & "SELECT operid, 'Зад_пост', [Реф №], Наименование, Дата1, дата2, валюта, " _
                    & "round(Эквивалент1, 2), round(Эквивалент2, 2)  " _
                    & "FROM __TEMP_Характеристики_заказа_Зад_пост WHERE ((([OperID_2])=" & RBCharge!OperID_2 & "))"
            CurrentDb.Execute SQLStr
            
            SQLStr = "INSERT INTO __TEMP_ОПЕРАТОР_Характеристики_заказа ( operid_2, tbl_id, [Реф №], " _
                    & "Наименование, Дата1, Дата2, валюта, [Б+], [Б-]) " _
                    & "SELECT operid, 'bank', [Реф №], Наименование, Дата1, дата2, валюта, " _
                    & "round(Эквивалент1, 2), round(Эквивалент2, 2)  " _
                    & "FROM __TEMP_Характеристики_заказа_bank WHERE ((([OperID_2])=" & RBCharge!OperID_2 & "))"
            CurrentDb.Execute SQLStr
            
            SQLStr = "INSERT INTO __TEMP_ОПЕРАТОР_Характеристики_заказа ( operid_2, tbl_id, [Реф №], " _
                    & "Наименование, Дата1, Дата2, валюта, [T+], [T-]) " _
                    & "SELECT operid, 'sklad', [Реф №], Наименование, Дата1, дата2, валюта, " _
                    & "round(Эквивалент1, 2), round(Эквивалент2, 2)  " _
                    & "FROM __TEMP_Характеристики_заказа_sklad WHERE ((([OperID_2])=" & RBCharge!OperID_2 & "))"
            CurrentDb.Execute SQLStr

            SQLStr = "INSERT INTO __TEMP_ОПЕРАТОР_Характеристики_заказа ( operid_2, tbl_id, [Реф №], " _
                    & "Наименование, Дата1, Дата2, валюта, [Рз+], [Рз-]) " _
                    & "SELECT operid, 'Realization', [Реф №], Наименование, Дата1, дата2, валюта, " _
                    & "round(Эквивалент1, 2), round(Эквивалент2, 2)  " _
                    & "FROM __TEMP_Характеристики_заказа_Realization WHERE ((([OperID_2])=" & RBCharge!OperID_2 & "))"
            CurrentDb.Execute SQLStr
            RBCharge.MoveNext
       Loop
End If
...
Рейтинг: 0 / 0
Проблема с циклом Do ... Loop
    #32561635
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Vsevolod VПри первой итерации отрабатывает только первый запрос, а при последней - все.
Но оно физически на эти строки кода приходит? Или выпадает на On Error?
...
Рейтинг: 0 / 0
Проблема с циклом Do ... Loop
    #32561657
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но оно физически на эти строки кода приходит? Или выпадает на On Error?
Точки останова ставил - всегда на эти строки приходит.
...
Рейтинг: 0 / 0
Проблема с циклом Do ... Loop
    #32561671
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ААААААААААааааааааааааааааа
матьматьматьматьматьматьматьматьматьмать

CurrentDb.Execute SQLStr, dbFailOnError

иначе все On Error'ы - что мертвому припарки
...
Рейтинг: 0 / 0
Проблема с циклом Do ... Loop
    #32561684
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Лох ПозорныйААААААААААааааааааааааааааа
матьматьматьматьматьматьматьматьматьмать
Золотые слова. Высечь в камне и повесить над монитором.
...
Рейтинг: 0 / 0
Проблема с циклом Do ... Loop
    #32561688
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
добавил dbFailOnError - ничего не изменилось.
...
Рейтинг: 0 / 0
Проблема с циклом Do ... Loop
    #32561696
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
А если взять значение SQLStr, перенести в конструктор запросов и там посмотреть на количество записей?
...
Рейтинг: 0 / 0
Проблема с циклом Do ... Loop
    #32561700
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужная запись там есть. Тобиш количество записей - одна :)
...
Рейтинг: 0 / 0
Проблема с циклом Do ... Loop
    #32561704
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Каждый запрос должен возвращать какие-то записи и при отдельном выполнении такого запроса (как хранимого) все работает
...
Рейтинг: 0 / 0
Проблема с циклом Do ... Loop
    #32561707
sasha_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а может все проще и для первого значения RBCharge!OperID_2 просто нету записей в таблицах? :)
...
Рейтинг: 0 / 0
Проблема с циклом Do ... Loop
    #32561709
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Vsevolod VНужная запись там есть. Тобиш количество записей - одна :)
А если запустить из конструктора, то работает или выдает ошибку?
...
Рейтинг: 0 / 0
Проблема с циклом Do ... Loop
    #32561716
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sasha_1
Записи есть

Владимир Саныч
Заменяю RBCharge!OperID_2 на соответствующее число и из конструктора запрос работает без ошибок.
...
Рейтинг: 0 / 0
Проблема с циклом Do ... Loop
    #32561721
Roma R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>При первой итерации отрабатывает только первый запрос, а при последней - все.

Что такое итерация?
При второй, 3, 4 ... итерациях сколько запросов обрабатывается
...
Рейтинг: 0 / 0
Проблема с циклом Do ... Loop
    #32561722
sasha_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а что в объекте Error?
...
Рейтинг: 0 / 0
Проблема с циклом Do ... Loop
    #32561731
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что такое итерация?
Одно прохождение цикла

При второй, 3, 4 ... итерациях сколько запросов обрабатывается
Все запросы!
До этого думал, что только при последней все отрабатываются

а что в объекте Error?
Ничего
...
Рейтинг: 0 / 0
Проблема с циклом Do ... Loop
    #32561732
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Vsevolod VЗаменяю RBCharge!OperID_2 на соответствующее число и из конструктора запрос работает без ошибок.
Не надо заменять вручную. Возьми SQLStr прямо из программы.
...
Рейтинг: 0 / 0
Проблема с циклом Do ... Loop
    #32561749
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вставляю в конструктор такую строку:
Код: plaintext
1.
2.
3.
INSERT INTO __TEMP_ОПЕРАТОР_Характеристики_заказа ( operid_2, tbl_id, [Реф №], Наименование, Дата1, Дата2, валюта, [ 61 +], [ 61 -]) 
SELECT operid, 'Зад_пост', [Реф №], Наименование, Дата1, дата2, валюта, round(Эквивалент1,  2 ),
 round(Эквивалент2,  2 )  
FROM __TEMP_Характеристики_заказа_Зад_пост WHERE ((([OperID_2])=RBCharge!OperID_2 ))
И, соответственно, запрашивает параметр RBCharge!OperID_2

Ну, а если вообще ничего не менять, то возникает ошибка "Несоответствие типов данных"
...
Рейтинг: 0 / 0
Проблема с циклом Do ... Loop
    #32561779
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Всеволод,

Возьми SQLStr прямо из программы.
...
Рейтинг: 0 / 0
Проблема с циклом Do ... Loop
    #32561788
sasha_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Саныч имел ввиду в момент прохождения по шагам программы вывести sqlstr в
окошко дебаггера, скопировать его в запрос и запустить.
...
Рейтинг: 0 / 0
Проблема с циклом Do ... Loop
    #32561797
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это LOL!!!
Сообразил.
----
Ниодна запись не возвращается
...
Рейтинг: 0 / 0
Проблема с циклом Do ... Loop
    #32561801
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Ну вот теперь и ищи почему.
...
Рейтинг: 0 / 0
Проблема с циклом Do ... Loop
    #32561806
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот блин! Огромное сорри. У меня не соответствие кодов в таблице и менно по первой записи :((
...
Рейтинг: 0 / 0
Проблема с циклом Do ... Loop
    #32561840
sasha_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну вот. а я что говорил.
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Проблема с циклом Do ... Loop
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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