Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как обновить расчеты, связанные со значением в поле со списком??? / 18 сообщений из 18, страница 1 из 1
06.08.2003, 16:39
    #32229117
Vsevolod V
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновить расчеты, связанные со значением в поле со списком???
Есть форма, одно из полей которой заполняются (DAO) в зависимости от значения в поле со списком. В этом поле вычисляется сумма в у.е. Периодически возникает ситуация изменить курс валюты. Т.е если, например, на сегодня курс валюты не определен, то юзеру предлагается это сделать. Таким образом значение поля "сумма в у.е." меняется. Но отображается оно в поле только если заново выбрать в списке соответствующий элемент.
Как это автоматизировать???

Requery тут не помогает...
...
Рейтинг: 0 / 0
06.08.2003, 17:12
    #32229192
Vsevolod V
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновить расчеты, связанные со значением в поле со списком???
Хм... Разве это такой сложный вопрос....
...
Рейтинг: 0 / 0
06.08.2003, 17:15
    #32229194
Geo
Geo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновить расчеты, связанные со значением в поле со списком???
Есть целая куча других Re..., например Recalc, Repaint. Их не пробовал? По-моему, они тебе нужнее.
...
Рейтинг: 0 / 0
06.08.2003, 17:19
    #32229200
Vsevolod V
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновить расчеты, связанные со значением в поле со списком???
А на что эту кучу вешать? На всю форму или только на список???
...
Рейтинг: 0 / 0
06.08.2003, 17:25
    #32229209
Geo
Geo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновить расчеты, связанные со значением в поле со списком???
На самом деле я даже вопрос толком не понял.

...то юзеру предлагается это сделать. Таким образом значение поля "сумма в у.е." меняется...

Меняется пользователем непосредственно в поле? Или еще где-нить, а потом ты указанное значение подкладываешь в "сумма в у.е."?

Где ты пересчитываешь значение "одного из полей", в котором "вычисляется сумма в у.е." (назову его Поле1, а то уже путаюсь)? В обработчике события "после обновления" какого-нибудь из полей или в источнике данных поля "Поле1"?
...
Рейтинг: 0 / 0
06.08.2003, 17:34
    #32229221
Vsevolod V
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновить расчеты, связанные со значением в поле со списком???
Смысл такой:
Юзер этом списке код счета и в "Поле1" отображается сумма по счету в у.ё...
Каждый счет имеет свою строго определенную валюту. Если курс этой валюты не введен, то открывается форма "Ввод курсов валют".
Юзер вводит курс валюты, закрывает форму "Ввод курсов валют". И он должен увидеть значение в поле1 (оно пустое, т.к. на момент расчетов курс не был введен). Т.е необходимо заново выбрать в списке соответствующий код счет и хрен знает как сделать это программно...
...
Рейтинг: 0 / 0
06.08.2003, 17:36
    #32229223
Темный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновить расчеты, связанные со значением в поле со списком???
Ну, а запомнить ID этой валюты в форме ввода оной и потом передать это значение гдавной форме?
...
Рейтинг: 0 / 0
06.08.2003, 17:37
    #32229224
Vsevolod V
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновить расчеты, связанные со значением в поле со списком???
>Есть целая куча других Re..., например Recalc, Repaint. Их не пробовал? По-моему, они тебе нужнее.

Это тоже не работает...
...
Рейтинг: 0 / 0
06.08.2003, 17:40
    #32229231
Vsevolod V
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновить расчеты, связанные со значением в поле со списком???
Выше был приведен узкий смысл проблемы...
Широкий смысл:
Список (AfterUpdate):
Код: 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.
Dim r As DAO.Recordset
Dim n As DAO.Recordset
    
    Set r = CurrentDb.OpenRecordset( "SELECT Bills.Организация, Bills.Валюта, Sum(nz([Приход],0 ))-Sum(nz([Расход], 0 )) AS Остаток, (Sum(nz([Приход], 0 ))-Sum(nz([Расход], 0 )))*yr([Bills].[валюта])/yr(yetype( 1 )) AS ye, Bills.[Код счета]" _
    &  "FROM Bills RIGHT JOIN Bank ON Bills.[Код счета] = Bank.[Код счета]"  _
    &  "GROUP BY Bills.Организация, Bills.Валюта, Bills.[Код счета]" )
       
    r.FindFirst  "[код счета] = '" & Me.list1 & "'" 
        If Not r.NoMatch Then
 
            Me.org = r( "Организация" )
            Me.cur = r( "Валюта" )
            Me.rest = r( "Остаток" )
            Me.ye = r( "ye" )
                If IsNull(Me.ye) Then
                    MsgBox  "Введите используемый курс валюты" 
                    DoCmd.OpenForm  "Курсы валют" 
                End If
        Else
            Me.org =  ""
            Me.cur = "  "
            Me.rest = "  "
            Me.ye = " "
        End If
       r.close
...
Рейтинг: 0 / 0
06.08.2003, 17:41
    #32229233
Vsevolod V
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновить расчеты, связанные со значением в поле со списком???
Для того чтобы получить новые значения в полях
Me.org = r("Организация")
Me.cur = r("Валюта")
Me.rest = r("Остаток")
Me.ye = r("ye")
Необходимо заново запустить эту процедуру... А КАК???
...
Рейтинг: 0 / 0
06.08.2003, 17:43
    #32229238
Geo
Geo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновить расчеты, связанные со значением в поле со списком???
Руский язык хоть мни и родное, но это:
"Юзер этом списке код счета и в "Поле1" отображается сумма по счету в у.ё... ", млин, из шедевров. Дай бог, чтоб меня понимали, когда я также пишу.

Ладно.
На "код счета" у тебя скорее всего стоит процедура обработки события "после обновления". Можно сделать ее из Private в Public и вызывать при закрытии формы "Ввод курсов валют". Аналогично для остальных полей, при изменении содержимого которых пересчитывается сумма в валюте.
Еще лучше, коль скоро проблема именно при закрытии фомы "ввод курсов валют", нормально расписать, что нужно делать (т.е. requery для поля со списком "курсы валют", потом [сумма в валюте] = [курс] * [сумму в рублях] и т.д.).
Видимо, это и нужно...
...
Рейтинг: 0 / 0
06.08.2003, 17:46
    #32229240
Vsevolod V
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновить расчеты, связанные со значением в поле со списком???
>Можно сделать ее из Private в Public и вызывать при закрытии формы "Ввод курсов валют".

Я так делал... Не получилось...
хм...
В этом случае в модуль надо вставлять эту процедуру????
...
Рейтинг: 0 / 0
06.08.2003, 17:50
    #32229249
Geo
Geo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновить расчеты, связанные со значением в поле со списком???
На закрытие формы напиши:

Private sub ФормаВводаКурсов_OnClose(...)
...
ГлавнаяРабочаяФорма.ПолеСоСпискомКурсовВалют_AfterUpdate
...
End Sub
...
Рейтинг: 0 / 0
06.08.2003, 17:54
    #32229254
Как обновить расчеты, связанные со значением в поле со списком???
Тогда уж лучше так
объяви переменную, ссылающуюся на форму курса валют, и лови событие закрытие формы. В форме курса валют создай функцию для возврата ID валюты. Что-то вроде этого

' главная форма '
Private WithEvents FormCurr as Form_Currency

' где вызов формы '
Set FormCurr = New Form_Currency
Form_Currency.OnClose = "[Event procedure]"
Form_Currency.Visible = True

Private Sub FormCurr_Close()
id_cur = Form_Currency.GetCurrecyID()
' здесь сделай то что тебе надо '

Set FormCurr = Nothing
End Sub

' форма валют '

Public Function GetCurrencyID()
' возрати код валюты '
End Function
...
Рейтинг: 0 / 0
06.08.2003, 17:55
    #32229256
Vsevolod V
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновить расчеты, связанные со значением в поле со списком???
Работает... Спасибо!
...
Рейтинг: 0 / 0
07.08.2003, 13:04
    #32229914
Темный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновить расчеты, связанные со значением в поле со списком???
Нда... Может мне попонятней изъясняться? Или все разжевывать?

Ворчу...
...
Рейтинг: 0 / 0
07.08.2003, 13:24
    #32229945
Vsevolod V
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновить расчеты, связанные со значением в поле со списком???
Наверное для начала лучше понятнее изъясниться :) А там видно будет... :)
...
Рейтинг: 0 / 0
07.08.2003, 13:26
    #32229947
Vsevolod V
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновить расчеты, связанные со значением в поле со списком???
типа чем тебе не нравится тако вариант:

Private sub ФормаВводаКурсов_OnClose(...)
...
ГлавнаяРабочаяФорма.ПолеСоСпискомКурсовВалют_AfterUpdate
...
End Sub
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как обновить расчеты, связанные со значением в поле со списком??? / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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