Solved

# Rename folders in VBA

Posted on 2013-01-03
4,650 Views
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
Question by:maximyshka
[X]
###### Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

• Help others & share knowledge
• Earn cash & points

LVL 13

Expert Comment

ID: 38740546
0

LVL 74

Expert Comment

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

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

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

Question has a verified solution.

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

In this post we will learn different types of Android Layout and some basics of an Android App.
Did you know that more than 4 billion data records have been recorded as lost or stolen since 2013? It was a staggering number brought to our attention during last week’s ManageEngine webinar, where attendees received a comprehensive look at the ma…
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 …
Do you want to know how to make a graph with Microsoft Access? First, create a query with the data for the chart. Then make a blank form and add a chart control. This video also shows how to change what data is displayed on the graph as well as form…
###### Suggested Courses
Course of the Month6 days, 23 hours left to enroll