powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / как применить module к кнопке
25 сообщений из 57, страница 1 из 3
как применить module к кнопке
    #39196779
Retvisan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
есть модуль, нужно запустить его с кнопки в форме, как это сделать
...
Рейтинг: 0 / 0
как применить module к кнопке
    #39196803
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Retvisan,
модуль не запускается, в нем обычно хранятся процедуры и функции, которые и нужно запускать
...
Рейтинг: 0 / 0
как применить module к кнопке
    #39196808
Retvisan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vmag,да, там есть функция внутри, как ее запустить?)
...
Рейтинг: 0 / 0
как применить module к кнопке
    #39196810
Retvisan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
как применить module к кнопке
    #39196813
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Retvisan,

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

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

Call KLfilter

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

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

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

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

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

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

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

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

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


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