Функция CallByName

Отнася се за
Access за Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Изпълнява метод на обект или задава, или връща свойство на обект.

Синтаксис

CallByName(object , procname, calltype [, args()])

Синтаксисът на функцията CallByName има следните аргументи:

Аргумент Описание
обект Задължително. Вариант (обект). Името на обекта, върху който ще се изпълни функцията.
procname Задължително. Variant (String). Низов израз, съдържащ името на свойство или метод на обекта.
тип обаждане Задължително. Константа. Константа от тип vbCallType , представляваща типа на процедурата, която се извиква.
args() Незадължително. Variant (масив).

    

Забележки

Функцията CallByName се използва за получаване или задаване на свойство или за извикване на метод по време на изпълнение чрез име на низ.

В следващия пример първият ред използва CallByName , за да зададе свойството MousePointer на текстово поле, вторият ред получава стойността на свойството MousePointer , а третият ред извиква метода Move за преместване на текстовото поле:

CallByName Text1, "MousePointer", vbLet, vbCrosshair
Result = CallByName (Text1, "MousePointer", vbGet)
CallByName Text1, "Move", vbMethod, 100, 100

Пример

Забележка

Примерите по-долу илюстрират използването на тази функция във Visual Basic for Applications (VBA). За повече информация относно работата с VBA изберете Справочни материали за разработчици в падащия списък до Търсене и въведете един или няколко термина в полето за търсене.

Този пример използва функцията CallByName за извикване на метода Move на команден бутон.

Примерът използва също формуляр (Form1) с бутон (Command1) и етикет (Label1). Когато формулярът се зареди, свойството Caption на етикета се задава да бъде името на метода, който да се извика, в този случай "Move". Когато щракнете върху бутона, функцията CallByName извиква метода, за да промени местоположението на бутона.

Option Explicit
Private Sub Form_Load()
  Label1.Caption = "Move"' Name of Move method.
End Sub
Private Sub Command1_Click()
If Command1.Left <> 0 Then
  CallByName Command1, Label1.Caption, vbMethod, 0, 0
Else
  CallByName Command1, Label1.Caption, vbMethod, 500, 500
End If