powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / параметры функции
11 сообщений из 11, страница 1 из 1
параметры функции
    #32591056
mift
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно ли в VBA в качестве параметра функции передавать другую функцию?
...
Рейтинг: 0 / 0
параметры функции
    #32591084
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
...
XTblAtr(MyCat, CStr(MyVar),  1 )
..
Public Function XTblAtr(MyCat As Object, tblName As String, NumPar As Long) As String
Select Case NumPar
Case  1 
XTblAtr = MyCat.Tables(tblName).Properties("Jet OLEDB:Link Datasource")
Case  2 
XTblAtr = MyCat.Tables(tblName).Properties("Jet OLEDB:Remote Table Name")
End Select
End Function
...
Рейтинг: 0 / 0
параметры функции
    #32591095
Shubnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Конечно можно
...
Рейтинг: 0 / 0
параметры функции
    #32591124
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Что нужно передать - результат обращения к функции или ссылку на адрес функции?
...
Рейтинг: 0 / 0
параметры функции
    #32591148
mift
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Владимир Саныч
ссылку на адрес функции.

То есть такая проблема:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Private Function UserFunc() - имя и тело функции варьируется
     ...
End Function

Private Function LibraryFunc( здесь как-то передать имя (адрес) функции UserFunc)
     ...
    Call UserFunc
End Function
...
Рейтинг: 0 / 0
параметры функции
    #32591183
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Вот что-то похожее:
/topic/21001

Я сам никогда не пробовал.
...
Рейтинг: 0 / 0
параметры функции
    #32591514
Bely
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mift2 Владимир Саныч
ссылку на адрес функции.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Private Function UserFunc() - имя и тело функции варьируется
     ...
End Function

Private Function LibraryFunc( здесь как-то передать имя (адрес) функции UserFunc)
     ...
    Call UserFunc
End Function


А имя не подойдет?
Можно передать имя и далее Eval - и все в шоколаде
...
Рейтинг: 0 / 0
параметры функции
    #32591584
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Таки да. Просто надо будет весь вызов вместе с параметрами составить как стринг.
...
Рейтинг: 0 / 0
параметры функции
    #32592234
mift
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
О, спасибо.
...
Рейтинг: 0 / 0
параметры функции
    #32592239
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Боюсь, там будет много ограничений. Например, я не знаю, будут ли распознаны имена переменных.
...
Рейтинг: 0 / 0
параметры функции
    #32594302
lobodava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно и так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Public Function UserFunc() 
     MsgBox "Public Function UserFunc()"
End Function

Private Function LibraryFunc( strUserFuncName as String)
    Application.Run strUserFuncName
End Function
 
Private Sub TestLibraryFunc()
    Call LibraryFunc("UserFunc")
End Sub

В метод Run можно передавать до 30 аргументов для исполняемой функции, типа:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Public Function UserFunc(intNumer As Integer, dtmDate As Date)
     MsgBox "Public Function UserFunc()" & Str(intNumer) & " " & Format(dtmDate, "hh:nn")
End Function

Private Function LibraryFunc(strUserFuncName As String, Arg1 As Variant, Arg2 As Variant)
    Application.Run strUserFuncName, Arg1, Arg2
End Function
 
Private Sub TestLibraryFunc()
    Call LibraryFunc("UserFunc",  2 , # 7 : 15 : 00  PM#)
End Sub

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


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