Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / объединить несколько процедур / 17 сообщений из 17, страница 1 из 1
20.09.2018, 16:31
    #39705725
Geha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
объединить несколько процедур
Подскажите как повесть несколько процедур на одно событие.

Private Sub toplivo_kart_AfterUpdate()
Dim a, b, s, f, z
s = Forms!frmZakazKart!Код.Value
a = Me![toplivo_kart].Value
f = DLookup("[Spidom0]", "ZakazKart", "[код] = " & s & "")
z = DCount("*", "qerzakaz", "[toplivo_kart] > 0")

'ввод первую строку если toplivo_kart не равно 0
If z = 0 And a > 0 Then
Me.spidom_z = f + [probeg]
End If

If a > 0 And z > 0 Then
b = DMax("[spidom_z]", "ZakazKomplektKart", "[idzakaz] = " & s & "")
Me.spidom_z = b + [probeg]
End If

Debug.Print b
Debug.Print f
Debug.Print a
Debug.Print z
End Sub

и вторую

Private Sub fakt_AfterUpdate()
Me.[probeg] = ([fakt] / Forms!frmZakazKart!na100) * 100
End Sub
...
Рейтинг: 0 / 0
20.09.2018, 16:34
    #39705728
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
объединить несколько процедур
Судя по именам обработчиков - это два события РАЗНЫХ объектов. Т.е. два РАЗНЫХ события.
...
Рейтинг: 0 / 0
20.09.2018, 16:54
    #39705738
Geha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
объединить несколько процедур
AkinaТ.е. два РАЗНЫХ события.

Gehaна одно событие.
...
Рейтинг: 0 / 0
20.09.2018, 16:55
    #39705740
Geha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
объединить несколько процедур
Akina,

Я как раз и спрашиваю, как их повесить на одно событие
...
Рейтинг: 0 / 0
20.09.2018, 17:00
    #39705745
Прогер_самоучка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
объединить несколько процедур
GehaAkinaТ.е. два РАЗНЫХ события.

Gehaна одно событие.Call F1
...
Рейтинг: 0 / 0
20.09.2018, 17:32
    #39705761
MokeevP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
объединить несколько процедур
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Sub UnionSub()
Call toplivo_kart_AfterUpdate
Call fakt_AfterUpdate

'и т.п. типа:
Call btn_Click
End sub

Private Sub toplivo_kart_AfterUpdate()
....
End Sub

Private Sub fakt_AfterUpdate()
.....
End Sub



То есть, если я правильно понял Вы написали процедуры на события и у вас есть какой то третий триггер чтобы запустить их с кнопки, например. Вот как то так оно и работает
...
Рейтинг: 0 / 0
20.09.2018, 18:02
    #39705778
Geha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
объединить несколько процедур
MokeevPВы написали процедуры на события и у вас есть какой то третий триггер чтобы запустить их с кнопки
Немного не так, мне нужно повесить эти обе процедуры на событие после обновления.
...
Рейтинг: 0 / 0
20.09.2018, 20:02
    #39705818
MokeevP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
объединить несколько процедур
Geha,

Соответственно пишете процедуру, которая "после обновления" и в ней перечисляете по-порядку через "call" все процедуры (вне зависимости - по событию они или как есть, если по событию то вместе с "_click", "_afterupdate" и так далее)
...
Рейтинг: 0 / 0
20.09.2018, 20:11
    #39705822
Geha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
объединить несколько процедур
MokeevP,

Спасибо, буду разбираться
...
Рейтинг: 0 / 0
20.09.2018, 21:10
    #39705836
Geha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
объединить несколько процедур
MokeevP,
А можно для тех кто в танке, подправить, что то вообще не рулит.

Код: vbnet
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.
Private Sub fakt_AfterUpdate()
Call fakt_AfterUpdate
Call toplivo_kart_AfterUpdate
Call toplivo_kart_LostFocus

Call btn_Click
End sub

Private Sub fakt_AfterUpdate()
Me.[probeg] = ([fakt] / Forms!frmZakazKart!na100) * 100
End Sub

Private Sub toplivo_kart_AfterUpdate()
Dim a, b, s, f, z
s = Forms!frmZakazKart!Код.Value
a = Me![toplivo_kart].Value
f = DLookup("[Spidom0]", "ZakazKart", "[код] = " & s & "")
z = DCount("*", "qerzakaz", "[toplivo_kart] > 0")

'ввод первую строку если toplivo_kart не равно 0
If z = 0 And a > 0 Then
    Me.spidom_z = f + [probeg]
    End If
    
    If a > 0 And z > 0 Then
b = DMax("[spidom_z]", "ZakazKomplektKart", "[idzakaz] = " & s & "")
   Me.spidom_z = b + [probeg]
   End If
   
Debug.Print b
Debug.Print f
Debug.Print a
Debug.Print z
End Sub

Private Sub toplivo_kart_LostFocus()
Me.[spidom_v] = [spidom_z] - [probeg]
End Sub
...
Рейтинг: 0 / 0
20.09.2018, 21:13
    #39705838
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
объединить несколько процедур
Gehaмне нужно повесить эти обе процедуры на событие после обновленияПосле обновления, япона мать, чего именно??? какого именно объекта?
GehaА можно для тех кто в танке, подправитьПо-моему, даже тех, кто в танке, должны смущать две разные подпрограммы с абсолютно совпадающими именами...
...
Рейтинг: 0 / 0
20.09.2018, 21:18
    #39705842
Geha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
объединить несколько процедур
AkinaПосле обновления, япона мать, чего именно???
Geha
Код: vbnet
1.
fakt_AfterUpdate()


После обновления данных поля fakt в форме
...
Рейтинг: 0 / 0
20.09.2018, 21:25
    #39705849
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
объединить несколько процедур
Geha,
Такой синтаксис не устроит: If условие Then GoTo метка
...
Рейтинг: 0 / 0
20.09.2018, 22:47
    #39705887
alecko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
объединить несколько процедур
если речь о поправить код, то этот код можно записать так
Код: vbnet
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 fakt_AfterUpdate()
If not isnull(Forms!frmZakazKart!na100) then Me.probeg = (Me.fakt / Forms!frmZakazKart!na100) * 100 else Me.probeg =0
toplivo_kart_AfterUpdate
toplivo_kart_LostFocus
btn_Click
End Sub

Private Sub toplivo_kart_AfterUpdate()
Dim a, b, s, f, z
s = Forms!frmZakazKart!Код
a = Me.toplivo_kart
f = DLookup("[Spidom0]", "ZakazKart", "[код] = " & s )
z = DCount("*", "qerzakaz", "[toplivo_kart] > 0")

'ввод первую строку если toplivo_kart не равно 0
if a > 0 Then 
If z = 0 then 
 Me.spidom_z = f + Me.probeg 
elseif z>0 then
  b = DMax("[spidom_z]", "ZakazKomplektKart", "[idzakaz] = " & s): Me.spidom_z = b + Me.probeg
end if
end if
Debug.Print b; tab; f ; tab; a;tab;z
End Sub

Private Sub toplivo_kart_LostFocus()
Me.spidom_v = Me.spidom_z - Me.probeg
End Sub


где то ещё есть Private sub btn_Click()

хотя вызывает сомнение необходимость собирания событий поскольку это неминуемо приведет к дублированию.
...
Рейтинг: 0 / 0
20.09.2018, 22:53
    #39705890
MokeevP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
объединить несколько процедур
Geha
Код: vbnet
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.
Private Sub fakt_AfterUpdate()
'Call fakt_AfterUpdate  вы пытаетесь в процедуре вызвать саму процедуру,  не надо так
Call toplivo_kart_AfterUpdate
Call toplivo_kart_LostFocus

'Call btn_Click это вообще пример был,  включаем голову и ассоциативное мышление
End sub

Private Sub fakt_AfterUpdate()
Me.[probeg] = ([fakt] / Forms!frmZakazKart!na100) * 100
End Sub

Private Sub toplivo_kart_AfterUpdate()
Dim a, b, s, f, z
s = Forms!frmZakazKart!Код.Value
a = Me![toplivo_kart].Value
f = DLookup("[Spidom0]", "ZakazKart", "[код] = " & s & "")
z = DCount("*", "qerzakaz", "[toplivo_kart] > 0")

'ввод первую строку если toplivo_kart не равно 0
If z = 0 And a > 0 Then Me.spidom_z = f + [probeg]
If a > 0 And z > 0 Then
   b = DMax("[spidom_z]", "ZakazKomplektKart", "[idzakaz] = " & s & "")      'интереса ради,  что вы хотите здесь сделать? 
   Me.spidom_z = b + [probeg]
End If
   
Debug.Print b
Debug.Print f
Debug.Print a
Debug.Print z
End Sub

Private Sub toplivo_kart_LostFocus()
Me.[spidom_v] = [spidom_z] - [probeg]
End Sub



Могу здорово ошибаться, но вроде так
...
Рейтинг: 0 / 0
20.09.2018, 23:23
    #39705897
Geha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
объединить несколько процедур
alecko,

Спасибо, то что нужно, все работает
...
Рейтинг: 0 / 0
20.09.2018, 23:25
    #39705898
Geha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
объединить несколько процедур
MokeevP,

Не работает, вылетает по ошибке.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / объединить несколько процедур / 17 сообщений из 17, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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