Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Цикл Do...Loop / 25 сообщений из 69, страница 1 из 3
22.08.2003, 11:06
    #32244272
Vsevolod V
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Цикл Do...Loop
Есть ленточная форма (Источник записей - табл. Калькуляция). Рассмотрим два поля этой формы: Поставщик (post) и Оплачено (opl). Поле оплачено заполняется из таблицы Касса в зависимости от значения в поле Поставщик, т.е. из кассы берутся данные об оплате, которые идентифицируются номером заказа и Поставщиком. Для заполнения поля оплачено я написал такую штуку:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Dim d As DAO.Recordset
Dim n As DAO.Recordset

Set d = CurrentDb.OpenRecordset( "select * from cash where [поставщик] = '" & Me!post & "'" )
Set n = Me.Form.RecordsetClone
    If Not d.EOF Then
    n.MoveFirst
    d.MoveFirst
        Do Until d.EOF
            Me!opl = d( "расход" )
            d.MoveNext
            n.MoveNext
        Loop
    Else: Me!opl = ""
    End If
    d.Close


Но этот код заполняет все поле значениями, связанными только с текущей строкой в форме.
Что ж тут исправить???
...
Рейтинг: 0 / 0
22.08.2003, 11:10
    #32244290
sasha_1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Цикл Do...Loop
напиши у контрола в соурсе
=dlookup ("расход","cash","[поставщик] = '" & Me!post & "'")

криво, зато просто :)
...
Рейтинг: 0 / 0
22.08.2003, 11:15
    #32244303
Vsevolod V
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Цикл Do...Loop
2sasha_1
Ошибка синтаксиса во введенном выражении: пропущен операнд или оператор...

Да и вообще, что это за функция такая? :)
...
Рейтинг: 0 / 0
22.08.2003, 11:16
    #32244307
GuDVin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Цикл Do...Loop
dblookup
...
Рейтинг: 0 / 0
22.08.2003, 11:17
    #32244309
Nick987
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Цикл Do...Loop
bookmark забыл
...
Рейтинг: 0 / 0
22.08.2003, 11:17
    #32244310
sasha_1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Цикл Do...Loop
блин.
ну вместо , надо ;
=dlookup ("расход";"cash";"[поставщик] = '" & Me!post & "'")
...
Рейтинг: 0 / 0
22.08.2003, 11:18
    #32244313
Vsevolod V
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Цикл Do...Loop
Надо так
=dlookup ("расход" ; "cash" ; "[поставщик] = '" & Me!post & "'")

Теперь другая проблема:
Эта функция возвращает значение только для первостроки, причем помещает это значение в последней строке, которая для добавления заисей...
...
Рейтинг: 0 / 0
22.08.2003, 11:19
    #32244317
Vsevolod V
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Цикл Do...Loop
первострока следует читать, как "первая строка"
...
Рейтинг: 0 / 0
22.08.2003, 11:22
    #32244323
Vsevolod V
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Цикл Do...Loop
2Nick987
и что мне с ним делать??? с bookmarkom :)
...
Рейтинг: 0 / 0
22.08.2003, 11:23
    #32244326
sasha_1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Цикл Do...Loop
2 Vsevolod V:
чего-то я не понял. почему первая строка.
напиши так
=dlookup ("расход";"cash";"[поставщик] = '" & [post] & "'")
у меня все работает правильно.
если не получится есть еще один вариант - правильный :)
...
Рейтинг: 0 / 0
22.08.2003, 11:28
    #32244337
Nick987
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Цикл Do...Loop
Когда переходишь по записям в Recordsetclone, на форме это не отражается, а в коде ты используешь ссылку на форму "Me!opl". Стало быть Me.bookmark = n.bookmark, если я правильно понял.
...
Рейтинг: 0 / 0
22.08.2003, 11:30
    #32244341
Vsevolod V
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Цикл Do...Loop
Кстати:
1) Я забыл, что выборка должна учитывать номер заказа, т.е параметра два :(
2) Предложенный тобой вариант вообще странно работает: он игнорирует условие и отображает первую строку таблицы Cash
...
Рейтинг: 0 / 0
22.08.2003, 11:34
    #32244346
Vsevolod V
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Цикл Do...Loop
Вот такой вариант работает, как и первый вариант:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Dim d As DAO.Recordset
Dim n As DAO.Recordset

Set d = CurrentDb.OpenRecordset( "select * from cash where [поставщик] = '" & Me!post & "' AND [Реф №] = '" & Forms!заказ!ref & "'" )
Set n = Me.Form.RecordsetClone
    If Not d.EOF Then
    n.MoveFirst
    d.MoveFirst
        Do Until d.EOF
            Me!opl = d( "расход" )
            Me.Bookmark = n.Bookmark
            d.MoveNext
            n.MoveNext
        Loop
    Else: Me!opl = ""
    End If
    d.Close
...
Рейтинг: 0 / 0
22.08.2003, 11:35
    #32244347
sasha_1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Цикл Do...Loop
№;;%№%;№%№ .....
(это эмоции :)
поле у тебя что текст??? что ты его в кавычки запихал ???
или это все таки поле со списком ??? и там на самом деле код поставщика.
тогда убери нах кавычки (одинарные)
...
Рейтинг: 0 / 0
22.08.2003, 11:38
    #32244352
sasha_1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Цикл Do...Loop
>Вот такой вариант работает, как и первый вариант:
не занимайся ерундой. зачем самому пересчитывать рекордсет формы,
когда за тебя это прекрасно сделает Аксес.
Другой вариант:
в рекордсет формы подставь запрос в котором помимо табл Калькуляция
будет выщитываться и расход. И повесь это поле (расход) на сурс контрола.
Наслаждайся.
...
Рейтинг: 0 / 0
22.08.2003, 11:41
    #32244357
Nick987
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Цикл Do...Loop
boookmark д.б. до обращения к Me, а не после.
...
Рейтинг: 0 / 0
22.08.2003, 11:43
    #32244363
Vsevolod V
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Цикл Do...Loop
тогда убери нах кавычки (одинарные)
Код поставщика выглядит так: 6/05 - тобишь текст

в рекордсет формы подставь запрос в котором помимо табл Калькуляция
будет выщитываться и расход. И повесь это поле (расход) на сурс контрола

Я с этого начинал... и запарился...
Ну что ж буду продолжать париться :))
...
Рейтинг: 0 / 0
22.08.2003, 11:45
    #32244371
Vsevolod V
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Цикл Do...Loop
2Nick987
Sorry, я просто не доконца соображаю что такое bookmark

И куда его не пихай работает одинаково...

Буду париться с рекордсурсом
...
Рейтинг: 0 / 0
22.08.2003, 11:53
    #32244385
sasha_1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Цикл Do...Loop
чего там парится-то?
select Калькуляция .*, cash.расход from Калькуляция inner join cash on
Калькуляция.Поставщик=cash.Поставщик
...
Рейтинг: 0 / 0
22.08.2003, 11:56
    #32244392
Nick987
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Цикл Do...Loop
Если поле opl не связанное, то оно всегда будет заполняться одинаковыми значениями.
...
Рейтинг: 0 / 0
22.08.2003, 11:59
    #32244399
Vsevolod V
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Цикл Do...Loop
2Nick987, shasha_1
Еще немного и я признаюсь, что я пень

Всем спасибо! с рекордсурсом разобрался
сейчас попробую разобраться с рекордсетами (для интереса)
...
Рейтинг: 0 / 0
22.08.2003, 12:01
    #32244401
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Цикл Do...Loop
К посту от 11:34. А кто сказал, что у этих двух рекордсетов будет одинаковый порядок сортировки?
...
Рейтинг: 0 / 0
22.08.2003, 12:02
    #32244403
sasha_1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Цикл Do...Loop
>Еще немного и я признаюсь, что я пень
мой комп в открытую признается, что он четвертый пень и ничего
...
Рейтинг: 0 / 0
22.08.2003, 12:05
    #32244409
Vsevolod V
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Цикл Do...Loop
2Владимир Саныч
Спасибо за земечание...

2sasha_1
скромно квакает, что он 2-ой пенечек
Но мне до них видать далеко. У мен раздвоений личности(расчетверений тоже) нет. Так что я могу стать только одним пнем
...
Рейтинг: 0 / 0
22.08.2003, 12:10
    #32244418
Vsevolod V
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Цикл Do...Loop
АААА....
с рекордсурсом-то объект Recordset не является обновляемым :(
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Цикл Do...Loop / 25 сообщений из 69, страница 1 из 3
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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