Funktionen CallByName

Gäller för
Access för Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Kör en metod för ett objekt, eller anger eller returnerar en egenskap för ett objekt.

Syntax

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

Syntaxen för funktionen CallByName har följande argument:

Argument Beskrivning
objekt Obligatoriskt. Variant (Objekt). Namnet på det objekt som funktionen ska köras på.
procname Obligatoriskt. Variant (sträng). Ett stränguttryck som innehåller namnet på en egenskap eller metod för objektet.
samtalstyp Obligatoriskt. Konstant. En konstant av typen vbCallType som representerar den typ av procedur som anropas.
args() Valfritt. Variant (matris).

    

Kommentarer

Funktionen CallByName används för att hämta eller ange en egenskap, eller för att anropa en metod vid körning med hjälp av ett strängnamn.

I följande exempel använder den första raden CallByName för att ange egenskapen MousePointer för en textruta, den andra raden får värdet för egenskapen MousePointer och den tredje raden anropar metoden Flytta för att flytta textrutan:

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

Exempel

Obs

I exemplen nedan visar vi hur du använder den här funktionen i en Visual Basic for Applications-modul (VBA). Om du vill läsa mer om hur man använder VBA, kan du välja Info för utvecklare i listrutan bredvid Sök och sedan skriva en eller flera söktermer i sökrutan.

I det här exemplet används funktionen CallByName för att anropa metoden Flytta för en kommandoknapp.

I exemplet används också ett formulär (Form1) med en knapp (Command1) och en etikett (Label1). När formuläret läses in anges etikettens beskrivningsegenskap till namnet på metoden som ska anropas, i det här fallet "Flytta". När du klickar på knappen anropar funktionen CallByName metoden för att ändra platsen för knappen.

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