[AccessD] Move Folder

Rocky Smolin rockysmolin at bchacc.com
Wed Apr 28 22:06:12 CDT 2010


Jurgen

Re: existence of target folder - no problem - I use the folder browser to
let the user select both the source and target folders.  That way no typos.
Paths can get really long these days as well. So typing them in would be
error prone.

If you want a look at it it's a pretty small mdb - one module (Folder
Browser), one form - I can shoot it over.

Rocky
 

-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Jurgen Welz
Sent: Wednesday, April 28, 2010 5:59 PM
To: accessd at databaseadvisors.com
Subject: Re: [AccessD] Move Folder


Nice to know it works even if your help didn't reference the Name statement.

 

I consider robocopy a 'best' practice but it entails a learning curve and a
fair bit more work to do well and it doesn't support a progress indication.
If you need it all, a recursive API copy routine can give you the fairly
useless Windows progress bar.  Sometimes KISS is 'best'.  I hope you check
at least for non-existence of the target folder prior to the Name execution
and creation of the target after execution with the VBA Dir Function and
trap any errors arising from open files or non-existent paths.  Perhaps some
constraints relating to drives are in order considering the excerpts from
the help file I posted below.  I have not had a failure relating to naming
to a different drive but the help says it shouldn't work.  That may depend
on the exact software environment you're working with or you may not need to
move files across drives so it could be a non-issue.

Ciao Jürgen Welz 

Edmonton, Alberta 

jwelz at hotmail.com


 
> From: rockysmolin at bchacc.com
> To: accessd at databaseadvisors.com
> Date: Wed, 28 Apr 2010 15:44:25 -0700
> Subject: Re: [AccessD] Move Folder
> 
> Jurgen:
> 
> Just a follow up - Name was the best solution - simple, effective. 
> Client is happy.
> 
> Thanks.
> 
> Rocky
> 
> 
> -----Original Message-----
> Sent: Monday, April 26, 2010 5:35 PM
> Subject: Re: [AccessD] Move Folder
> 
> 
> >From the debug Immediate window, I typed Filecopy, clicked in the 
> >word and
> hit F1. From there click the link to 'See Also' and click the "Name 
> Statement" in the Visual Basic Reference.
> 
> 
> 
> Name Statement:
> 
> 
> 
> Renames a disk file, directory, or folder.
> Syntax
> 
> 
> 
> Name oldpathname As newpathname
> The Name statement syntax has these parts:
> 
> oldpathname: Required. String expression that specifies the existing 
> file name and location — may include directory or folder, and drive.
> 
> newpathname: Required. String expression that specifies the new file 
> name and location — may include directory or folder, and drive. The 
> file name specified by newpathname can't already exist.
> 
> Remarks
> 
> The Name statement renames a file and moves it to a different 
> directory or folder, if necessary. Name can move a file across drives, 
> but it can only rename an existing directory or folder when both 
> newpathname and oldpathname are located on the same drive. Name cannot 
> create a new file, directory, or folder.
> Using Name on an open file produces an error. You must close an open 
> file before renaming it. Name arguments cannot include 
> multiple-character (*) and single-character (?) wildcards.
> 
> You can use Robocoy provided you get the quotemarks correct. That's 
> why I gave you an example. I use a ShellWait API call so that it 
> proceeds synchronously. The code doesn't continue until the copy is 
> complete. I prefer the Robocopy myself, but Name works fine in most 
> instances. The remarks seem to indicate that Name won't do exactly 
> what I said it does, but, I tested it before the previous posting and 
> it works on our Windows Server system with the VBA that comes with Access
2003 just fine.
> 
> The quick way to test it is to just try it from the immediate window. 
> I'd test for existing initial folder, non existent target folder and 
> success result with Dir before your msgbox.
> 
> Ciao Jürgen Welz
> Edmonton, Alberta
> jwelz at hotmail.com
> 
> 
> > From: rockysmolin at bchacc.com
> > To: accessd at databaseadvisors.com
> > Date: Mon, 26 Apr 2010 17:10:29 -0700
> > Subject: Re: [AccessD] Move Folder
> > 
> > Name "Z:\Launch\Test" as "S:\dash\Taste"
> > 
> > That looks like the most efficient way. He wants a module that 
> > accepts the source folder and target paths. So using your example I 
> > would call my module MoveIt("Z:\Launch\Test", "S:\dash\Taste") which 
> > would have just
> this:
> > 
> > Public Sub MoveIt(argSource, argTarget)
> > 
> > Name argSource & " as " & argTarget
> > MsgBox "Folder Moved"
> > 
> > End sub
> > 
> > But is Name a key word that does this moving? I've never seen it in 
> > VBA like that.
> > 
> > TIA
> > 
> > Rocky
> > 
> > 
> > -----Original Message-----
> > From: accessd-bounces at databaseadvisors.com
> > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Jurgen 
> > Welz
> > Sent: Monday, April 26, 2010 4:38 PM
> > To: accessd at databaseadvisors.com
> > Subject: Re: [AccessD] Move Folder
> > 
> > 
> > You can run Robocopy from an Access form:
> > 
> > 
> > 
> > ShellWait "Robocopy.exe """ & strSourcePath & """
> > \\Gracsrv\GOMFiles\Estimates\" & r(1) & _ " /E /V 
> > /log+:\\Gracsrv\GOMFiles\Robocopy.log"
> > 
> > The above was part of a data migration routine I wrote a while back. 
> > There was a discussion about ShellWait a couple or 3 months back. In 
> > the excerpted line above, r(1) was the 2nd field in a recordset that 
> > was being iterated as strSourcePath was changed in the code loop as 
> > well. The optional switches for Robocopy are numerous and in this 
> > case include appending the results in a log file.
> > 
> > 
> > 
> > There are recursive folder move routines that work as well and I've 
> > written more than a fiew based on the Access Developer Handbook, but 
> > there is another quite easy approach:
> > 
> > 
> > 
> > Name "Z:\Launch\Test" as "S:\dash\Taste"
> > 
> > 
> > 
> > will move all the files below the folder named Test. I use this to 
> > move files a fair bit. It moves the files and sub folders nicely. It 
> > will not create the dash folder but it will create the Taste folder 
> > and move everything that was in Test to the new Taste folder so you 
> > may need to create the path with MkDir building out from the root, 
> > but once you've got the base path, it creates all the sub folders.
> > 
> > 
> > 
> > 
> > Ciao Jürgen Welz
> > 
> > Edmonton, Alberta
> > 
> > jwelz at hotmail.com
> > 
> > 
> > > From: rockysmolin at bchacc.com
> > > To: accessd at databaseadvisors.com
> > > Date: Mon, 26 Apr 2010 16:16:15 -0700
> > > Subject: Re: [AccessD] Move Folder
> > > 
> > > That looks like it'll do the job - unless he wants it in an Access 
> > > form prompting for source and target locations.
> > > 
> > > Rocky
> > > 
> > > 
> > > -----Original Message-----
> > > Sent: Monday, April 26, 2010 3:48 PM
> > > Subject: Re: [AccessD] Move Folder
> > > 
> > > Robocopy..... command line utility.
> > > 
> > > Drew
> > > 
> > > -----Original Message-----
> > > 
> > > Dear List:
> > > 
> > > What is the best way (through code, of course) to move a folder 
> > > and all of its subfolders and files to a new location?
> > > 
> > > 
> > > 
> > > MTIA
> > > 
> > > 
> > > 
> > > Rocky Smolin

 		 	   		  
_________________________________________________________________
Videos that have everyone talking! Now also in HD!
http://go.microsoft.com/?linkid=9724465
--
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com





More information about the AccessD mailing list