Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Проблема с циклом Do ... Loop / 23 сообщений из 23, страница 1 из 1
15.06.2004, 14:11:40
    #32561620
Vsevolod V
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с циклом Do ... Loop
При первой итерации отрабатывает только первый запрос, а при последней - все. В чем тут дело?
Код: 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
15.06.2004, 14:16:51
    #32561635
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с циклом Do ... Loop
Vsevolod VПри первой итерации отрабатывает только первый запрос, а при последней - все.
Но оно физически на эти строки кода приходит? Или выпадает на On Error?
...
Рейтинг: 0 / 0
15.06.2004, 14:23:41
    #32561657
Vsevolod V
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с циклом Do ... Loop
Но оно физически на эти строки кода приходит? Или выпадает на On Error?
Точки останова ставил - всегда на эти строки приходит.
...
Рейтинг: 0 / 0
15.06.2004, 14:27:27
    #32561671
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с циклом Do ... Loop
ААААААААААааааааааааааааааа
матьматьматьматьматьматьматьматьматьмать

CurrentDb.Execute SQLStr, dbFailOnError

иначе все On Error'ы - что мертвому припарки
...
Рейтинг: 0 / 0
15.06.2004, 14:30:47
    #32561684
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с циклом Do ... Loop
Лох ПозорныйААААААААААааааааааааааааааа
матьматьматьматьматьматьматьматьматьмать
Золотые слова. Высечь в камне и повесить над монитором.
...
Рейтинг: 0 / 0
15.06.2004, 14:32:29
    #32561688
Vsevolod V
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с циклом Do ... Loop
добавил dbFailOnError - ничего не изменилось.
...
Рейтинг: 0 / 0
15.06.2004, 14:34:11
    #32561696
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с циклом Do ... Loop
А если взять значение SQLStr, перенести в конструктор запросов и там посмотреть на количество записей?
...
Рейтинг: 0 / 0
15.06.2004, 14:36:06
    #32561700
Vsevolod V
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с циклом Do ... Loop
Нужная запись там есть. Тобиш количество записей - одна :)
...
Рейтинг: 0 / 0
15.06.2004, 14:37:13
    #32561704
Vsevolod V
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с циклом Do ... Loop
Каждый запрос должен возвращать какие-то записи и при отдельном выполнении такого запроса (как хранимого) все работает
...
Рейтинг: 0 / 0
15.06.2004, 14:38:16
    #32561707
sasha_1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с циклом Do ... Loop
а может все проще и для первого значения RBCharge!OperID_2 просто нету записей в таблицах? :)
...
Рейтинг: 0 / 0
15.06.2004, 14:39:46
    #32561709
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с циклом Do ... Loop
Vsevolod VНужная запись там есть. Тобиш количество записей - одна :)
А если запустить из конструктора, то работает или выдает ошибку?
...
Рейтинг: 0 / 0
15.06.2004, 14:41:50
    #32561716
Vsevolod V
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с циклом Do ... Loop
sasha_1
Записи есть

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

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

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

а что в объекте Error?
Ничего
...
Рейтинг: 0 / 0
15.06.2004, 14:48:25
    #32561732
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с циклом Do ... Loop
Vsevolod VЗаменяю RBCharge!OperID_2 на соответствующее число и из конструктора запрос работает без ошибок.
Не надо заменять вручную. Возьми SQLStr прямо из программы.
...
Рейтинг: 0 / 0
15.06.2004, 14:52:15
    #32561749
Vsevolod V
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с циклом Do ... Loop
Вставляю в конструктор такую строку:
Код: 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
15.06.2004, 15:02:50
    #32561779
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с циклом Do ... Loop
Всеволод,

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


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