Funktionen CallByName

Gælder for
Access til Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Udfører en metode for et objekt eller angiver eller returnerer en egenskab for et objekt.

Syntaks

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

Syntaksen for funktionen CallByName har disse argumenter:

Argument Beskrivelse
objekt Påkrævet. Variant (objekt). Navnet på det objekt, som funktionen skal udføres på.
procname Obligatorisk. Variant (Streng). Et strengudtryk, der indeholder navnet på en egenskab eller metode for objektet.
opkaldstype Påkrævet. Konstant. En konstant af typen vbCallType , der repræsenterer den type procedure, der kaldes.
args() Valgfrit. Variant (matrix).

    

Bemærkninger

Funktionen CallByName bruges til at hente eller angive en egenskab eller til at aktivere en metode på kørselstidspunktet ved hjælp af et strengnavn.

I følgende eksempel bruger den første linje CallByName til at angive egenskaben MousePointer for et tekstfelt, den anden linje får værdien af egenskaben MousePointer , og den tredje linje aktiverer metoden Flyt for at flytte tekstfeltet:

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

Eksempel

Bemærk

Følgende eksempler demonstrerer brugen af denne funktion i et VBA-modul (Visual Basic for Applications). Hvis du vil have mere at vide om at arbejde med VBA, skal du vælge Udviklerreference på rullelisten ud for Søg og skrive ét eller flere ord i søgefeltet.

I dette eksempel bruges funktionen CallByName til at aktivere metoden Flyt for en kommandoknap.

I eksemplet bruges også en formular (Form1) med en knap (Command1) og en etiket (Label1). Når formularen indlæses, angives egenskaben Titeltekst for navnet til navnet på den metode, der skal aktiveres, i dette tilfælde "Flyt". Når du klikker på knappen, aktiverer funktionen CallByName metoden til at ændre knappens placering.

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