powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Цикл Do...Loop
25 сообщений из 69, страница 2 из 3
Цикл Do...Loop
    #32244466
sasha_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну тогда dlookup тебе в руки :)
...
Рейтинг: 0 / 0
Цикл Do...Loop
    #32244478
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужно, чтобы код пробегал по всем записям текущей формы и заполнял оплату?
Тогда примерно так:
Код: 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.
Private Sub Кнопка0_Click()
  Dim d As DAO.Recordset
  Dim n As DAO.Recordset

  Set n = Me.Form.RecordsetClone
  On Error Resume Next
  n.MoveFirst
  On Error GoTo  0 
  
  Do Until n.EOF
    Set d = CurrentDb.OpenRecordset( "select * from cash where [заказ]='" & n!order & _
                                    "' And [поставщик] = '" & n!post & "'" )
    On Error Resume Next
    r.MoveFirst
    On Error GoTo  0 
    
    Do Until d.EOF
      n.Edit
      n!opl = Nz(n!opl,  0 ) + Nz(d![расход],  0 )
      n.Update
      d.MoveNext
    Loop
    
    n.MoveNext
  Loop
  
  d.Close
  n.Close
End Sub


Или проверял только текущую запись формы?
Тогда, видимо, так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
  Dim d As DAO.Recordset
  
  Set d = CurrentDb.OpenRecordset( "select * from cash where [заказ]='" & Me!order & _
                                  "' And [поставщик] = '" & Me!post & "'" )
  
  On Error Resume Next
  r.MoveFirst
  Me.opl = ""
  On Error GoTo  0 
    
  Do Until d.EOF
    Me!opl = Nz(Me!opl,  0 ) + Nz(d![расход],  0 )
    d.MoveNext
  Loop
  
  d.Close
...
Рейтинг: 0 / 0
Цикл Do...Loop
    #32244489
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Только вместо d.movefirst я случайно написал r.movefirst
...
Рейтинг: 0 / 0
Цикл Do...Loop
    #32244502
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2sasha_1
дак я бы рад :)
Пишу
=DLookUp("расход";"cash";[поставщик]='" & Me!post & "')
все поле Оплачено - пустое и только в последней строке (новая запись) стоит значение расхода из первой строки Cash, т.е. параметр Поставщик не учтен
Что за бред???

2Geo
Спасибо...
Попробую, когда с DLookUp разберусь
...
Рейтинг: 0 / 0
Цикл Do...Loop
    #32244514
sasha_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
начнем с того что синтаксиc д.б. такой :)
=DLookUp("расход";"cash"; " [поставщик]='" & [post] & "')
...
Рейтинг: 0 / 0
Цикл Do...Loop
    #32244521
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2sasha_1
если с ковычками, то во всем поле #Имя?
...
Рейтинг: 0 / 0
Цикл Do...Loop
    #32244528
sasha_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
уже теплее.
Проверь следующее:
1.поле поставщик есть в таблице cash и оно текст
2.поле post есть в таблице Калькуляция и это тоже текст
(очень я в этом сомневаюсь)
...
Рейтинг: 0 / 0
Цикл Do...Loop
    #32244533
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все поля на месте и идентичны... Единственное, что post - это имя поля с источником данных Поставщик. Но это не должно играть никакой роли...
...
Рейтинг: 0 / 0
Цикл Do...Loop
    #32244549
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Geo
Строка

Код: plaintext
1.
2.
Set d = CurrentDb.OpenRecordset( "select * from cash where [заказ]='" & n!order & _
                                    "' And [поставщик] = '" & n!post & "'" )
    

Выдает ошибку: Элемент не обнаружен в данном семействе
...
Рейтинг: 0 / 0
Цикл Do...Loop
    #32244550
sasha_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мда ...
дурацкая мысль, а в запросе все выводилось правильно?
если да, то кинь плз его SQL
...
Рейтинг: 0 / 0
Цикл Do...Loop
    #32244551
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вместо "заказ" и "поставщик" поставь имена соответствующих полей таблицы Cash.
...
Рейтинг: 0 / 0
Цикл Do...Loop
    #32244557
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...и вместо "order" и "post" - имена соотв. полей из таблицы-источника данных твоей формы (калькуляция, кажется).
...
Рейтинг: 0 / 0
Цикл Do...Loop
    #32244569
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Geo
Я знал, что ты это напишешь
не... там все нормально...
Тут вот какая штука:
Если записи нет, то ошибка на этой строке, а если есть, то на строке n!opl = Nz(d![Расход], 0)

2sasha_1
SELECT calc.*, [cash].[расход] FROM calc INNER JOIN cash ON [calc].[Поставщик]=[cash].[Поставщик];
...
Рейтинг: 0 / 0
Цикл Do...Loop
    #32244572
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Geo
программе не нравиться вот это: n!
...
Рейтинг: 0 / 0
Цикл Do...Loop
    #32244582
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Geo
я там соврал...

Он во всех ситуациях выдает ошибку на той строке
У меня просто было заменено n!post на Me!post...
...
Рейтинг: 0 / 0
Цикл Do...Loop
    #32244588
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Geo
Сорри все работает...
Я просто указал имена полей, а не источники данных :)
...
Рейтинг: 0 / 0
Цикл Do...Loop
    #32244591
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
2 Geo:

А зачем On Error Resume Next перед MoveFirst? Если на MoveFirst будет ошибка, значит рекордсет пустой, и тогда все дальнейшее не имеет смысла. Так что предлагаю так:

If Not n.BOF Then
n.MoveFirst
... 'вся программа
End If
n.Close

- и никакого On Error.
...
Рейтинг: 0 / 0
Цикл Do...Loop
    #32244593
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Владимир Саныч
я и сам это убрал :)
А можешь пояснить почему DlookUp не работает???
...
Рейтинг: 0 / 0
Цикл Do...Loop
    #32244597
sasha_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хрен знает что
ну попробуй еще вот так
=DLookUp("расход";"cash";"[поставщик]='" & [Поставщик] & "')
...
Рейтинг: 0 / 0
Цикл Do...Loop
    #32244604
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
> А можешь пояснить почему DlookUp не работает???

Покажи мне значение третьего параметра, тогда угадаю.
...
Рейтинг: 0 / 0
Цикл Do...Loop
    #32244607
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2sasha_1
DLookUp меня уже бесит :)
Ошибка: Выражение содержит ошибочную строку
...
Рейтинг: 0 / 0
Цикл Do...Loop
    #32244613
sasha_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это кто так говорит?
синтаксис?
...
Рейтинг: 0 / 0
Цикл Do...Loop
    #32244620
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это, когда в данные вставляешь эту строку, а потом нажимаешь энтер.

Код: plaintext
1.
2.
Выражение содержит ошибочную строку

Строка может содержать до  255  знаков, включай знаки отькрывающей и закрывающей ковычек
...
Рейтинг: 0 / 0
Цикл Do...Loop
    #32244624
sasha_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
еб.... мать, Всеволод
возьми себя в руки.
уж выражение-то написать сможешь.
проверь, в конце концов напиши руками раз не можешь скопировать.

P.S. извини погорячился :)
...
Рейтинг: 0 / 0
Цикл Do...Loop
    #32244629
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Владимир Саныч
пишу Me.opl.ControlSource = DLookup("расход", "cash", "[поставщик]='" & [Поставщик] & "'")
ставлю break
пишу ?Me.opl.ControlSource
значение 1 (это правильно)
а в поле #Имя?
...
Рейтинг: 0 / 0
25 сообщений из 69, страница 2 из 3
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Цикл Do...Loop
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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