Error

E

endlssorrow

Hi All,

I encounter this error msg:

Run-time error '1004':
Out of stack space


what is this about?
 
K

Ken Johnson

Hi All,

I encounter this error msg:

Run-time error '1004':
Out of stack space

what is this about?

When you get that error clicking the Help button should supply this
information about the causes. Have fun working out how your code can
be amended to stop it occurring.

Out of stack space (Error 28)

The stack is a working area of memory that grows and shrinks
dynamically with the demands of your executing program. This error has
the following causes and solutions:
• You have too many active Function, Sub, or Property procedure
calls.
Check that procedures aren't nested too deeply. This is especially
true with recursive procedures, that is, procedures that call
themselves. Make sure recursive procedures terminate properly. Use the
Calls dialog box to view which procedures are active (on the stack).
• Your local variables require more local variable space than is
available.
Try declaring some variables at the module level instead. You can also
declare all variables in the procedure static by preceding the
Property, Sub, or Function keyword with Static. Or you can use the
Static statement to declare individual Static variables within
procedures.
• You have too many fixed-length strings.
Fixed-length strings in a procedure are more quickly accessed, but use
more stack space than variable-length strings, because the string data
itself is placed on the stack. Try redefining some of your fixed-
length strings as variable-length strings. When you declare variable-
length strings in a procedure, only the string descriptor (not the
data itself) is placed on the stack. You can also define the string at
module level where it requires no stack space. Variables declared at
module level are Public by default, so the string is visible to all
procedures in the module.
• You have too many nested DoEvents function calls.
Use the Calls dialog box to view which procedures are active on the
stack.
• Your code triggered an event cascade.
An event cascade is caused by triggering an event that calls an event
procedure that's already on the stack. An event cascade is similar to
an unterminated recursive procedure call, but it's less obvious, since
the call is made by Visual Basic rather than by an explicit call in
your code. Use the Calls dialog box to view which procedures are
active (on the stack).
To display the Calls dialog box, select the Calls button to the right
of the Procedure box in the Debug window or choose the Calls command.
For additional information, select the item in question and press F1
(in Windows) or HELP (on the Macintosh).

Ken Johnson
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top