我在一个模块中有一个 MS Access VBA 过程,该模块对特定文件夹中的文件有一个 for each 循环。
在循环内部,我在一个单独的文件夹中创建了一个新文件,然后用循环中文件中的清理数据填充该文件。我将新文件的数据导入 SQL Server 2005 数据库。成功导入后,脚本会删除已清理的文件并尝试将循环中的文件移动(或复制/删除)到同一目录中的存档子文件夹。
文件循环适用于循环文件夹中的所有文件......除了最后一个文件。那是弹出 Permission Denied 错误的时候。
在上述情况下,错误消息总是发生在以下之一(我尝试了几个类似的命令):
fso.MoveFile
fso.DeleteFile (just after copy)
f.Move
f.Delete (just after copy)
Name origin As destination
这是我的代码:
Dim fso As New Scripting.FileSystemObject
Dim f As file
Dim processingFiles As Files
If fso.FolderExists(incomingPath) Then
Set processingFiles = fso.GetFolder(incomingPath).Files
End If
For Each f In processingFiles
/*this is where the create a new file and clean it part runs - works fine*/
If fso.FileExists(archivePathFile) Then
Kill archivePathFile
End If
If fso.FileExists(tempPath & "\cleaned_processing_file.txt") Then
Kill tempPath & "\clean_processing_file.txt"
End If
f.Move archivePathFile '<------------- Permission Denied, last file in folder
Debug.Print f.Name & " is now in " & incomingPath & "\Archive"
'f.Copy archivePathFile, True
'f.Delete True '<----------------------- Permission Denied, last file
'Name origPathFile As archivePathFile '< Path/File access error, last file
Next '<--- For Each Loop