【发布时间】:2021-01-22 21:01:05
【问题描述】:
希望有人能帮忙:)
我有一个 MS Access 表,其中包含文件名和其他数据示例:
帐户编号、文件名
12345, abc123.pdf
我编写了一个 SQL 来根据帐号对文件名进行排序。示例:Select * from tblTest where AcctNum='12345'
具有这些文件名的文件位于目录中 (C:\Test\<filename>.pdf)
我需要根据我编写的 SQL 移动选定的文件,以将这些文件移动到不同的目录 (D:\Test\FromCode)。文件名 'abc123.pdf' 位于 C:\Test 移动到 D:\test,循环 SQL 结果以根据条件移动文件。
附件是我写的一些 VBA,当我输入确切的文件名时,我可以手动将文件从源复制到目标(如代码中所示,文件名是“abc123”),但我想将其绑定到 mysql 查询记录集并移动将包含 1000 个文件的组。任何人都知道我可以将其与记录集联系起来的最佳方法吗?
感谢您提供的任何指导/帮助。
Sub UpdateDirectory()
Dim objFSO As Object
Dim objFolder As Object
Dim objFile As Object
Dim rs As DAO.Recordset
Dim db As DAO.Database
Dim mysource As String
Dim mydes As String
Dim mysql As String
mysql = "SELECT * from tblTest where ACCTNUM = 123456"
mysource = "C:\Test"
mydes = "D:\Test\FromCode\"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(mysource)
Set db = CurrentDb
Set rs = db.OpenRecordSet(mysql)
'I want to tie mysql recordset to below to move all files/records based
'on ACCTNUM. This could result in moving 1000's of files to
'destination.
For Each objFile In objFolder.Files
If InStr(1, objFile.Name, "abc123") > 0 Then
Debug.Print "yes"
objFSO.CopyFile objFile, mydes
Else
Debug.Print "no"
End If
Next
'clean
Set objFolder = Nothing
Set objFile = Nothing
Set objFSO = Nothing
End Sub
【问题讨论】: