File search/display for all occurrences of Current MDB

There is an access applicatoin that has been changed multiple times and could potentially exist in multiple folders on a given user's pc

I'm trying to write a function that will do a file search on local hard drives for the current mdb name and display the results in a grid.

Not sure of the best way to do this
Who is Participating?
peter57rConnect With a Mentor Commented:
Why do it?
Isn't that what Windows File Search is for?

use  Currentdb.Name to get current access mdb

decent recursive file search code here - adapt to get all listings
johnnyg123Author Commented:

there is a good chance the user does not have a previous version and thus would save the user from having to do a Windows File Search.  


Get 10% Off Your First Squarespace Website

Ready to showcase your work, publish content or promote your business online? With Squarespace’s award-winning templates and 24/7 customer service, getting started is simple. Head to and use offer code ‘EXPERTS’ to get 10% off your first purchase.

johnnyg123Author Commented:
I created a sample access db named search_files.mdb

I created a form  named findfiles that has 2 controls

a list box named lstFileName (unbound, row source type = value list)

a command button named cmdFindFile

I added the following to the form

Private Sub cmdFindFile_Click()


Me.lstFileName.RowSource = ""

For i = 1 To dlist.Count
     Me.lstFileName.AddItem (dlist(i))
Next i

End Sub

I have a module named search that contains the following:

Option Compare Database

Public dlist As New Collection

Sub dirTest()

Dim startDir As String
Dim i As Integer

Set dlist = Nothing

startDir = "D:\" & CurrentProject.Name

Call FillDir(startDir, dlist)

End Sub

Sub FillDir(startDir As String, dlist As Collection)

' build up a list of files, and then
' add add to this list, any additinal
' folders

Dim strTemp As String
Dim colFolders As New Collection
Dim vFolderName As Variant

strTemp = Dir(startDir)

Do While strTemp <> ""
dlist.Add startDir & strTemp
strTemp = Dir

' now build a list of additional folders
strTemp = Dir(startDir & "*.", vbDirectory)

Do While strTemp <> ""
If (strTemp <> ".") And (strTemp <> "..") Then
colFolders.Add strTemp
End If
strTemp = Dir

' now process each folder (recursion)
For Each vFolderName In colFolders
Call FillDir(startDir & vFolderName & "\", dlist)
Next vFolderName

End Sub

There is a file named search_files.mdb  on the root of d:  (d:\)

There is a file named search_files.mdb  in a folder named access  (d:\access)

I was hoping the list box on the form (lstFileName) would contain the following:


(since these are where the 2 files exist)

Instead I'm getting


Not sure what I'm missing

Jeffrey CoachmanConnect With a Mentor MIS LiasonCommented:
Instead of typing all that out, why not just post the DB you tried?

1. You did not  declare "i" in your button code.
(While this may not have anything to do with the issue, it should be corrected.)

2. Does this code work normally? (before you tried using it in this application)?
(There is no use in troubleshooting code that may not work in the first place)
3. Please comment all of your code.  This is so we don't spend time wondering what every line does.
Sound fair?
(For example, I am not seeing a delimiter in the code to separate the list Items...?)

4. It is also not clear clear how, exactly, you are running this. (where is the DB located that this code is running from?)

5. It is not clear how this code will return the subfolder paths...?

Basic troubleshooting would say to put a message box in the loops to see what they are returning.
Then you can find out why it is not building the list properly.

While I am certain that this can be done, all of the code to do so is not what I would consider "simple".

Can we go back to Pete's suggestion of using Widows search?
You stated that:
  "there is a good chance the user does not have a previous version and thus would save the user from having to do a Windows File Search. "

I don't understand, ...they must still do a "Search" of one kind or another.

So if they search with your app, or they search with Windows search, they still have to "Search", and the the results will be the same...
I am not understanding how Windows search would be less effective...

johnnyg123Author Commented:
Ok ...  you guys have convinced me to do a windows search. (i'll raise the white flag and cry uncle)

Thanks for the posts!
Jeffrey CoachmanMIS LiasonCommented:
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.