ACC97: Error When Object Methods Rely On Optional ArgumentsID: Q175215
|
Moderate: Requires basic macro, coding, and interoperability skills.
If an object's method within a subroutine or a function uses the optional
arguments allowed by the subroutine or the function, and one or more of the
optional arguments are excluded at the time that the subroutine or the
function is called, one of the following run-time errors can occur:
Run-time error '13':
Type mismatch
-or-
Run-time error '2493':
This action requires an Object Name argument.
The object's method is expecting one or more of its arguments to have some value, and one of the arguments has either been assigned an unknown value, or the value has been excluded altogether.
Functions such as IsMissing() or IsNull() within Visual Basic for
Applications can be used to check for any excluded optional arguments.
Within the subroutine or the function that is called, programmatically test
to see if one or more of the optional arguments was excluded. For example:
Sub Prog1(Optional a, Optional b, Optional c)
If IsMissing(a) Then a = acDefault
If IsMissing(b) Then b = ""
If IsMissing(C) Then c = acSavePrompt
DoCmd.Close a, b, c
End Sub
Sub Prog2(Optional a As Long, Optional b As String, Optional c As Long)
If a = 0 Then a = acDefault
If IsNull(b) Then b = ""
If C = 0 Then c = acSavePrompt
DoCmd.Close a, b, c
End Sub
Prog1
Prog2
If you have programmatically specified that one or more arguments of a
method should be used, and you do not supply an argument at run time or you
do not supply a valid value for an argument, you will receive the run-time
error.
To illustrate this point, the "Steps to Reproduce Behavior" section will
use the Close method of the DoCmd object within a subroutine, where the
subroutine allows for optional arguments. However, when the subroutine is
called, the optional arguments are excluded in order to generate the
run-time error.
Sub Prog(Optional a, Optional b, Optional c)
DoCmd.Close a, b, c
End Sub
Prog
Sub Prog(Optional a As Long, Optional b As String, Optional c As Long)
Additional query words: prb
Keywords : kberrmsg PgmObj
Version : WINDOWS:97
Platform : WINDOWS
Issue type : kbprb
Last Reviewed: April 30, 1999