Solved

Rename folders in VBA

Posted on 2013-01-03
3
4,023 Views
Last Modified: 2013-01-10
Hi,
I need help writting code in vba access .
The code should search directory for folders named "name" and change those folders name into "names"

thanks
0
Comment
Question by:maximyshka
3 Comments
 
LVL 13

Expert Comment

by:Surone1
ID: 38740546
0
 
LVL 74

Expert Comment

by:Jeffrey Coachman
ID: 38741694
This will work without the need for external libraries:

Dim strOriginalName As String
Dim strNewName As String
   
    strOriginalName = "C:\Junk"
    strNewName = "C:\JunkNew"
   
    Name strOriginalName As strNewName

JeffCoachman
0
 
LVL 4

Accepted Solution

by:
theGove earned 500 total points
ID: 38742225
From your post, it seems that you want to start at a particular folder and then search that folder and all of its sub folders to for any folder named "name" and change the name of that folder to "names", right?

This problem is not so easy because it requires you to iterate across folders at the same time as you are changing the names of those folders.  To do this well, I think you need a recursive call to a procedure that iterates across all the folders in the list and does the renaming, however, you have to be sure to iterate deep before you do any renaming so that you don't rename a folder that still needs to have its sub folders checked.

The following code should do the trick.  You'll need to put this code into a new module in Access.
Dim objFSO As Object

Sub ChangeName()
  Set objFSO = CreateObject("Scripting.FileSystemObject")
  renameFolders "c:\path\to\start\folder"
End Sub

Sub renameFolders(path As String)
  Dim folder As Object
  For Each folder In objFSO.GetFolder(path).SubFolders
     renameFolders folder.path
     If LCase(folder.name) = "name" Then
        Debug.Print folder.path
        Name folder.path As folder.path & "s"
     End If
  Next
End Sub

Open in new window

Change "c:\path\to\start\folder" to the real path where you want the program to begin and then run the procedure named "ChangeName".  It should do the trick.
0

Featured Post

Comprehensive Backup Solutions for Microsoft

Acronis protects the complete Microsoft technology stack: Windows Server, Windows PC, laptop and Surface data; Microsoft business applications; Microsoft Hyper-V; Azure VMs; Microsoft Windows Server 2016; Microsoft Exchange 2016 and SQL Server 2016.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article will show, step by step, how to integrate R code into a R Sweave document
Although it can be difficult to imagine, someday your child will have a career of his or her own. He or she will likely start a family, buy a home and start having their own children. So, while being a kid is still extremely important, it’s also …
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…
Viewers will learn how to properly install Eclipse with the necessary JDK, and will take a look at an introductory Java program. Download Eclipse installation zip file: Extract files from zip file: Download and install JDK 8: Open Eclipse and …

864 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

19 Experts available now in Live!

Get 1:1 Help Now