ChDrive (Left(.DefaultFilePath, 1))
ChDir (.DefaultFilePath)
[\CODE][/QUOTE]
I'll address your original question shortly, but first, let me address a habit that you must learn to break or you will end up with what seems like unexplainable errors as you go forward in your programming career. When you call a subroutine that takes parameters, you can do so two different ways...
SubroutineName ArgumentList
or
Call SubroutineName(ArgumentList)
The syntax [B]requires[/B] the parentheses [B]only[/B] for the second method. If the argument list consists of only one argument, then you can surround the argument with parentheses [B]BUT[/B] if the argument list consists of two or more individual arguments, then surrounding the list with parentheses will generate an error. Why? It has to do with how VB treats parentheses that are [B]not[/B] required by syntax... it considers them to contain an expression that it must evaluate. A single argument (which can even possibly be an expression) can be evaluated (if it is not an expression, it just evaluates as itself, otherwise the expression is evaluated); however, a comma separated list of items or expressions has no meaning to VB's evaluation engine and so it will generate an error if asked to evaluate it. Now, to get to the above two code lines from the code you posted... ChDrive and ChDir are technically built-in VB statements, but underneath it all, the are subroutines that have arguments (it is just VB provided them to you instead of you having to create them), so they follow the same rules as for subroutines that I outlined above. The bad habit I am attempting to break you of... do not use parentheses around "things" in VB unless required by syntax or unless needed to clarify the order that parts of an expression need to be calculated in.