ACC2000: Error When Object Methods Rely on Optional Arguments (197950)
The information in this article applies to:
This article was previously published under Q197950 Moderate: Requires basic macro, coding, and interoperability skills.
SYMPTOMS
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
Run-time error '2493':
This action requires an Object Name argument.
CAUSE
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.
RESOLUTION
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:
- Type the following two procedures into a new module:
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
- Press CTRL+G to open and move focus to the Immediate window.
- Type the following line in the Immediate window, and then press ENTER:
Prog1
- Type the following line in the Immediate window, and then press ENTER:
Prog2
Modification Type: | Minor | Last Reviewed: | 7/16/2004 |
---|
Keywords: | kbprb KB197950 |
---|
|