1
我在MS-Access中有一個包含目錄路徑的表。在表單中,我有一個列表框,其中包含要搜索的文件列表。我使用下面的代碼:訪問VBA:搜索多個目錄中的多個文件
Set rst = dbs.OpenRecordset("SELECT * FROM mytable;")
While Not rst.EOF
strPath = rst!Path
For i = 0 To lstBox.ListCount - 1
strFullPath = strPath & "\" & lstBox.ItemData(i)
If Len(Dir(strFullPath)) <> 0 Then
'Do something
End If
Next i
rst.MoveNext
Wend
這工作得很好,但它不是最佳解決方案。例如,如果我有5個不同的目錄路徑,並且在列表框中,如果我有2個文件要搜索,那麼在表中,即使在前兩次迭代中找到2個文件,循環也總是運行10次。根據代碼,即使文件已經在第一個目錄路徑中找到,它也會在其餘4個目錄中搜索同一個文件。有沒有更好的方法來減少迭代次數?
在我的情況下,我通常會在列表框中至少有10個目錄路徑和20個文件進行搜索,因此循環總是會迭代200次,這會降低性能。
你在哪裏得到列表框的內容?從MyTable?值? AnotherTable?換句話說,行源是什麼? – Fionnuala 2015-02-09 15:34:15
我有另一個列表框,其中列出了用戶必須從中選擇添加到當前列表框中的文件的所有文件。 – enriq 2015-02-09 16:14:51