Solved

File search/display for all occurrences of Current MDB

Posted on 2010-11-15
7
288 Views
Last Modified: 2012-05-10
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
0
Comment
Question by:johnnyg123
7 Comments
 
LVL 77

Accepted Solution

by:
peter57r earned 250 total points
Comment Utility
Why do it?
Isn't that what Windows File Search is for?
0
 
LVL 3

Expert Comment

by:bczingo
Comment Utility

use  Currentdb.Name to get current access mdb

decent recursive file search code here - adapt to get all listings
http://bytes.com/topic/access/answers/209966-recursive-file-search-vba-vs-vb
0
 

Author Comment

by:johnnyg123
Comment Utility
peter57r


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.  

 


0
Highfive + Dolby Voice = No More Audio Complaints!

Poor audio quality is one of the top reasons people don’t use video conferencing. Get the crispest, clearest audio powered by Dolby Voice in every meeting. Highfive and Dolby Voice deliver the best video conferencing and audio experience for every meeting and every room.

 

Author Comment

by:johnnyg123
Comment Utility
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()

dirTest

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
Loop

' 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
Loop

' 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:

d:\search_files.mdb  
d:\access\search_files.mdb  

(since these are where the 2 files exist)


Instead I'm getting

D:\search_files.mdbsearch_files.mdb




Not sure what I'm missing

0
 
LVL 74

Assisted Solution

by:Jeffrey Coachman
Jeffrey Coachman earned 250 total points
Comment Utility
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...

JeffCoachman
0
 

Author Closing Comment

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


Thanks for the posts!
0
 
LVL 74

Expert Comment

by:Jeffrey Coachman
Comment Utility
;-)
0

Featured Post

How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

Join & Write a Comment

Suggested Solutions

This article is a continuation or rather an extension from Cascading Combos (http://www.experts-exchange.com/A_5949.html) and builds on examples developed in detail there. It should be understandable alone, but I recommend reading the previous artic…
Most if not all databases provide tools to filter data; even simple mail-merge programs might offer basic filtering capabilities. This is so important that, although Access has many built-in features to help the user in this task, developers often n…
What’s inside an Access Desktop Database. Will look at the basic interface, Navigation Pane (Database Container), Tables, Queries, Forms, Report, Macro’s, and VBA code.
With Microsoft Access, learn how to specify relationships between tables and set various options on the relationship. Add the tables: Create the relationship: Decide if you’re going to set referential integrity: Decide if you want cascade upda…

772 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

11 Experts available now in Live!

Get 1:1 Help Now