Kontext: In Microsoft Access versuche ich, Funktionen dynamisch aufzurufen und Parameter zu übergeben, die Application.Run
verwenden. Mein Code arbeitet unten in Excel 2013, aber funktioniert nicht in Access 2013Zugriff VBA Kompilierfehler Ungültige ParamArray Verwendung
Code:
Public Sub Test()
Call MethodDynamically("MethodToBeCalled1", "This", "works")
Call MethodDynamically("MethodToBeCalled2", "This", "works", "too")
Call MethodDynamically("MethodToBeCalled3", "This", "works", "too", "as well")
End Sub
Public Sub MethodDynamically(MethodName As String, ParamArray Params() as Variant)
Application.Run MethodName, Params
End Sub
Public Sub MethodToBeCalled1(Params As Variant)
Debug.Print Params(0) & " " & Params(1)
End Sub
Public Sub MethodToBeCalled2(Params As Variant)
Debug.Print Params(0) & " " & Params(1) & " " & Params(2)
End Sub
Public Sub MethodToBeCalled3(Params As Variant)
Debug.Print Params(0) & " " & Params(1) & " " & Params(2) & " " & Params(3)
End Sub
Returns Ausgabe:
This works
This works too
This works too as well
Fehler: jedoch in Microsoft Access, die Derselbe Code gibt den Fehler: Compile error: Invalid ParamArray use
.
Gibt es eine Möglichkeit, diesen Code für Access VBA anzupassen?
Großer Dank Erik. Aus Neugier, warum funktioniert das in Excel und nicht Access? –
Ich habe mehrere seltsame/buggy Dinge über 'Application.Run' in Excel bemerkt, wie' Application.Run "MyFunction()" 'MyFunction' zweimal (verursacht einen Laufzeitfehler in Access). Alles was ich sagen kann ist: es sollte nicht funktionieren afaik. –