In my Visual Basic ActiveX DLLs, some of the methods that I created for my objects use optional parameters. When I attempt to call these methods, I receive a syntax error from IIS. I have tried referencing the method using both of the following methods:
myObject.Load(Param2 := Parma2Val)
I have tested this object and successfully called it using Visual Basic, so I was wondering if this problem is VBScript specific. Any ideas?
It’s not so much a problem with VBScript as it is a designed behavior. Since VBScript was originally intended for use on the Web, it is “lighter” and provides fewer features than does its full-grown VBA counterpart.
In your first example, you might consider writing the object method so that it treats empty parameter strings the same way as it treats missing parameters. For example, inside of the method you might write:
If (IsMissing(Input)) or (Len(InputParam)
This would enable you to make the call in ASP asmyObject.Load("",Param2Val)
As for your second example, you should call it without the parameter name as follows:myObject.MyMethod(Parma2Val)
Again, this behavior is by design, as VBScript is not intended to work in exactly the same way as Visual Basic for Applications.