Solved

File search/display for all occurrences of Current MDB

Posted on 2010-11-15
7
322 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
[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
  • Learn & ask questions
7 Comments
 
LVL 77

Accepted Solution

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

Expert Comment

by:bczingo
ID: 34136593

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
ID: 34136848
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
Migrating Your Company's PCs

To keep pace with competitors, businesses must keep employees productive, and that means providing them with the latest technology. This document provides the tips and tricks you need to help you migrate an outdated PC fleet to new desktops, laptops, and tablets.

 

Author Comment

by:johnnyg123
ID: 34138019
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
ID: 34143072
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
ID: 34145023
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
ID: 34151223
;-)
0

Featured Post

Salesforce Has Never Been Easier

Improve and reinforce salesforce training & adoption using WalkMe's digital adoption platform. Start saving on costly employee training by creating fast intuitive Walk-Thrus for Salesforce. Claim your Free Account Now

Question has a verified solution.

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

In earlier versions of Windows (XP and before), you could drag a database to the taskbar, where it would appear as a taskbar icon to open that database.  This article shows how to recreate this functionality in Windows 7 through 10.
This article describes two methods for creating a combo box that can be used to add new items to the row source -- one for simple lookup tables, and one for a more complex row source where the new item needs data for several fields.
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…
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…

730 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