我正在尝试使用Access 2003找到一种方法(是的,我知道这很古老),搜索文件夹的所有子目录以确定文件是否存在。如果发现它需要输入一个打开或关闭按钮的子。我还希望能够保存路径,因为我需要此按钮来链接到文件。所以作为一个简短的解释,使用Access我想在一个文件夹中搜索一个具有子文件夹的驱动器,每个子文件夹都有自己的子文件夹。我找到了很多网站,包括以下网站,但没有一个答案似乎有效。 Loop Through All Subfolders Using VBA
任何帮助将不胜感激。
答案 0 :(得分:0)
`Dim FileSystem As Object Dim HostFolder As String
HostFolder =“C:\”
设置FileSystem = CreateObject(“Scripting.FileSystemObject”) DoFolder FileSystem.GetFolder(HostFolder)
Sub DoFolder(文件夹) 昏暗的SubFolder 对于Folder.SubFolders中的每个子文件夹 DoFolder SubFolder 下一个 昏暗的文件 对于Folder.Files中的每个文件 '操作每个文件 下一个 结束Sub` 给我一个无效的过程,并说错误是在我使用的主机文件夹中。但是,它与我用于其他代码样本的问题相同。
Public Sub NonRecursiveMethod()
Dim fso, oFolder, oSubfolder, oFile, queue As Collection
Set fso = CreateObject("Scripting.FileSystemObject")
Set queue = New Collection
queue.Add fso.GetFolder("your folder path variable") 'obviously replace
Do While queue.Count > 0
Set oFolder = queue(1)
queue.Remove 1 'dequeue
'...insert any folder processing code here...
For Each oSubfolder In oFolder.SubFolders
queue.Add oSubfolder 'enqueue
Next oSubfolder
For Each oFile In oFolder.Files
'...insert any file processing code here...
Next oFile
Loop
End Sub
给我一个错误,因为根据Access VBA,最后一个不在for循环中。 我找到了另一个能够工作的代码。它来自网站 http://www.ammara.com/access_image_faq/recursive_folder_search.html 但是,这非常慢。运行还需要30秒,当一切都在一个文件夹中时,一个简单的目录检查将是即时的。感谢那些提供帮助的人。