Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / как применить module к кнопке / 25 сообщений из 57, страница 1 из 3
21.03.2016, 09:54
    #39196779
Retvisan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как применить module к кнопке
есть модуль, нужно запустить его с кнопки в форме, как это сделать
...
Рейтинг: 0 / 0
21.03.2016, 10:23
    #39196803
vmag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как применить module к кнопке
Retvisan,
модуль не запускается, в нем обычно хранятся процедуры и функции, которые и нужно запускать
...
Рейтинг: 0 / 0
21.03.2016, 10:26
    #39196808
Retvisan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как применить module к кнопке
vmag,да, там есть функция внутри, как ее запустить?)
...
Рейтинг: 0 / 0
21.03.2016, 10:28
    #39196810
Retvisan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как применить module к кнопке
vmag,Function KLfilter()
On Error GoTo KLfilter_Err

With CodeContextObject
If (.LVybor <> "") Then
TempVars.Add "PeremennaiaL", .LVybor
Else
TempVars.Add "PeremennaiaL", "*"
End If
If (.NVybor <> "") Then
TempVars.Add "PeremennaiaN", .NVybor
Else
TempVars.Add "PeremennaiaN", "*"
End If
If (.IS510Vybor <> "") Then
TempVars.Add "PeremennaiaIS510", .IS510Vybor
Else
TempVars.Add "PeremennaiaIS510", "*"
End If
If (.IS520Vybor <> "") Then
TempVars.Add "PeremennaiaIS520", .IS520Vybor
Else
TempVars.Add "PeremennaiaIS520", "*"
End If
If (.IS530Vybor <> "") Then
TempVars.Add "PeremennaiaIS530", .IS530Vybor
Else
TempVars.Add "PeremennaiaIS530", "*"
End If
If (.R1Vybor <> "") Then
TempVars.Add "PeremennaiaR1", .R1Vybor
Else
TempVars.Add "PeremennaiaR1", "*"
End If
If (.R2Vybor <> "") Then
TempVars.Add "PeremennaiaR2", .R2Vybor
Else
TempVars.Add "PeremennaiaR2", "*"
End If
DoCmd.SetFilter "", "([L] Like [TempVars]![PeremennaiaL] And [N] Like [TempVars]![PeremennaiaN] And [IS510] Like [TempVars]![PeremennaiaIS510] And [IS520] Like [TempVars]![PeremennaiaIS520] And [IS530] Like [TempVars]![PeremennaiaIS530] And [R1] Like [TempVars]![PeremennaiaR2] And [R2] Like [TempVars]![PeremennaiaR2])", ""
End With


KLfilter_Exit:
Exit Function

KLfilter_Err:
MsgBox Error$
Resume KLfilter_Exit

End Function




\\\вот то что в модуле я прописал
...
Рейтинг: 0 / 0
21.03.2016, 10:31
    #39196813
vmag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как применить module к кнопке
Retvisan,

как то так:
Dim v As Variant
v = имя_функции([параметры если они есть через запятую])
...
Рейтинг: 0 / 0
21.03.2016, 10:39
    #39196822
vmag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как применить module к кнопке
Retvisan,
Dim v As Variant
v= KLfilter()

В данном случае это ближе к процедуре и если Function заменить везде на Sub,
то вызывать так

Call KLfilter

В начале (имени или процедуры) нужно добавить Public
...
Рейтинг: 0 / 0
21.03.2016, 10:56
    #39196838
Retvisan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как применить module к кнопке
vmag,
Private Sub CommonFilter_Click()
Dim v As Variant
v = KLfilter()
Call KLfilter
End Sub

выдает ошибку :
ambiguous name detected:~
...
Рейтинг: 0 / 0
21.03.2016, 10:58
    #39196840
Retvisan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как применить module к кнопке
vmag,
Private Sub CommonFilter_Click()
Dim v As Variant
v = KLfilter()
Call KLfilter
End Sub

заменил Private на Public, ошибок не выдает, но и фильтр не работает
...
Рейтинг: 0 / 0
21.03.2016, 10:58
    #39196841
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как применить module к кнопке
В конструкторе формы на вкладке свойств кнопки для события "Нажатие ..." задать =KLfilter().
Этого достаточно.

Public для функции/процедуры и так по умолчанию, если не указано иное.
...
Рейтинг: 0 / 0
21.03.2016, 11:03
    #39196847
Retvisan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как применить module к кнопке
__Michelle, был макрос в 2010 я пробразовал его в модуль, для того чтобы потом при помощи этого модуля запустить этот макрос в 2007. Я не могу понять как его запустить модулем( функцией)
...
Рейтинг: 0 / 0
21.03.2016, 11:04
    #39196848
vmag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как применить module к кнопке
Retvisanv = KLfilter()
Call KLfilter

Вы быть хоть почитали литературку для начала...
я вам привел примеры использования процедур и функций, а вы собрали всё в кучу...
...
Рейтинг: 0 / 0
21.03.2016, 11:08
    #39196854
Retvisan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как применить module к кнопке
vmag,читаю) http://www.lessons-tva.info/articles/informat/29.html
не могли бы объяснить принципиальную разницу между процедурами и функцией?)
...
Рейтинг: 0 / 0
21.03.2016, 11:08
    #39196855
ПЕНСИОНЕРКА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как применить module к кнопке
Retvisan,

ЭТО БОЛЬШЕ ПОХОЖЕ на преобразованный макрос из нового акса
попробуйте так
Код: 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.
Function KLfilter()
On Error GoTo KLfilter_Err

With CodeContextObject
TempVars.Add T1, "true"

If (.LVybor <> "") Then
TempVars!T1 = TempVars!T1 & " and L like '" & .LVybor & "'"
End If

If (.NVybor <> "") Then
TempVars!T1 = TempVars!T1 & " and N like '" & .NVybor & "'"
End If

If (.IS510Vybor <> "") Then
TempVars!T1 = TempVars!T1 & " and [IS510] like '" & .IS510Vybor & "'"
End If

If (.IS520Vybor <> "") Then
TempVars!T1 = TempVars!T1 & " and [IS520] like '" & .IS520Vybor & "'"
End If

If (.IS530Vybor <> "") Then
TempVars!T1 = TempVars!T1 & " and [IS530] like '" & .IS530Vybor & "'"
End If

If (.R1Vybor <> "") Then
TempVars!T1 = TempVars!T1 & " and R1 like '" & .R1Vybor & "'"
End If

If (.R2Vybor <> "") Then
TempVars!T1 = TempVars!T1 & " and R2 like '" & .R2Vybor & "'"
End If

DoCmd.SetFilter [TempVars]!T1
End With

End Function
...
Рейтинг: 0 / 0
21.03.2016, 11:12
    #39196857
Retvisan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как применить module к кнопке
ПЕНСИОНЕРКА,на сколько я понимаю у меня осталась одна перемнная T1, тогда у меня не получится сделать раздельное фильтрование. Если я увеличу кол-во Т1, то тогда раздельная фильтрация сохранится?
...
Рейтинг: 0 / 0
21.03.2016, 11:14
    #39196859
vmag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как применить module к кнопке
Retvisanне могли бы объяснить принципиальную разницу между процедурами и функцией?)

Основным отличием между процедурой и функцией является то, что функция возвращает значение.
...
Рейтинг: 0 / 0
21.03.2016, 11:14
    #39196860
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как применить module к кнопке
Retvisan__Michelle, был макрос в 2010 я пробразовал его в модуль, для того чтобы потом при помощи этого модуля запустить этот макрос в 2007. Я не могу понять как его запустить модулем( функцией))))
Вчитайтесь, пожалуйста, в свою фразу
"был макрос, ....преобразовал его в модуль, .... чтобы потом этим модулем запустить этот макрос..."
???
Если на самом деле Вам просто надо по нажатию кнопки выполнить функцию/процедуру, то 18957723 .
...
Рейтинг: 0 / 0
21.03.2016, 11:19
    #39196870
ПЕНСИОНЕРКА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как применить module к кнопке
RetvisanПЕНСИОНЕРКА,на сколько я понимаю у меня осталась одна перемнная T1, тогда у меня не получится сделать раздельное фильтрование. Если я увеличу кол-во Т1, то тогда раздельная фильтрация сохранится?
переменная то одна, но добавлений сколько потребуется
true and usl1 and usl2...............
...
Рейтинг: 0 / 0
21.03.2016, 11:21
    #39196875
Retvisan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как применить module к кнопке
Retvisan,TempVars.Add T1, "true" на это ругается
label not difined
...
Рейтинг: 0 / 0
21.03.2016, 11:26
    #39196882
Retvisan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как применить module к кнопке
Michelle,если делать так, то запускается макрос, он мне не нужен, мне нужна функция в модуле) модуль же появился после преобразования макроса,просто напрсто в построителе макроса ограничено кол-во символов, я переделила немного функцию и теперь мне нужно ее запустить с кнопки)))
...
Рейтинг: 0 / 0
21.03.2016, 11:26
    #39196883
ПЕНСИОНЕРКА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как применить module к кнопке
Retvisan,
видимо забыла скобки
TempVars.Add "T1", "true"

возможно и дальше потребуются
я пишу обычной функцией, не применяя TEMPVARS
...
Рейтинг: 0 / 0
21.03.2016, 11:31
    #39196892
Retvisan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как применить module к кнопке
ПЕНСИОНЕРКА,вот моя кнопка
Private Sub CommonFilter_Click()
Dim v As Variant
v = KLfilter()
Call KLfilter
End Sub

выдает ошибку :
ambiguous name detected:~

все равно эта фигня выскакивает теперь
...
Рейтинг: 0 / 0
21.03.2016, 11:33
    #39196895
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как применить module к кнопке
RetvisanMichelle ,если делать так, то запускается макрос, он мне не нужен, мне нужна функция в модуле) модуль же появился после преобразования макроса,просто напрсто в построителе макроса ограничено кол-во символов, я переделила немного функцию и теперь мне нужно ее запустить с кнопки)))Удалите макрос. Он ведь уже не нужен.
Будет вызываться VBA.
...
Рейтинг: 0 / 0
21.03.2016, 11:37
    #39196907
ПЕНСИОНЕРКА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как применить module к кнопке
Retvisan,

попробуйте , если у вас функция авторнеоднозначное имя обнаружено
иначе надо смотреть базу
Код: sql
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.
Function KLfilter()
dim t1
''On Error GoTo KLfilter_Err

With CodeContextObject
 T1="true"

If (.LVybor <> "") Then
T1 = T1 & " and L like '" & .LVybor & "'"
End If

If (.NVybor <> "") Then
T1 = T1 & " and N like '" & .NVybor & "'"
End If

If (.IS510Vybor <> "") Then
T1 = T1 & " and [IS510] like '" & .IS510Vybor & "'"
End If

If (.IS520Vybor <> "") Then
T1 = T1 & " and [IS520] like '" & .IS520Vybor & "'"
End If

If (.IS530Vybor <> "") Then
T1 = T1 & " and [IS530] like '" & .IS530Vybor & "'"
End If

If (.R1Vybor <> "") Then
t1 = T1 & " and R1 like '" & .R1Vybor & "'"
End If

If (.R2Vybor <> "") Then
T1 = T1 & " and R2 like '" & .R2Vybor & "'"
End If
debug.print t1
DoCmd.SetFilter t1
End With

End Function
...
Рейтинг: 0 / 0
21.03.2016, 11:38
    #39196909
Retvisan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как применить module к кнопке
__Michelle,как мне казалось в свойствах кнопки нельзя вызвать функцию?) по краней мере удалив макрос, я никак не могу вызвать модуль или функцию
...
Рейтинг: 0 / 0
21.03.2016, 11:39
    #39196915
ПЕНСИОНЕРКА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как применить module к кнопке
Retvisan,
да и двойной вызов не нужен
Private Sub CommonFilter_Click()
Dim v As Variant
v = KLfilter()
End Sub
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / как применить module к кнопке / 25 сообщений из 57, страница 1 из 3
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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