通过访问vba复制并粘贴文件

时间:2017-12-07 08:17:39

标签: ms-access access-vba ms-access-2010

我需要检查文件的文件夹,如果存在则将其删除并将其替换为更新版本,或者如果文件未删除则将文件从路径复制到个人驱动器中

我的代码:

Dim FileExistsbol As Boolean
Dim stFileName As String
Dim CopyFrom As String
Dim CopyTo As String

stFileName = "H:\Test File.txt"
stFileName = Trim(stFileName)
FileExistsbol = dir(stFileName) <> vbNullString

If FileExistsbol Then
 Kill stFileName
 CopyFrom = "J:\Test File.txt"
 CopyTo = "H:\"
 FileSystemObject.CopyFile CopyFrom, CopyTo
Else
 CopyFrom = "J:\Test File.txt"
 CopyTo = "H:\"
 FileSystemObject.CopyFile CopyFrom, CopyTo
End If

发生了什么:

代码按预期执行和删除现有文件,但复制和粘贴部分似乎失败。

错误:

出现的调试是:

  

需要对象

2 个答案:

答案 0 :(得分:2)

裸骨:

Dim fso As Object       'filesystemobject    
Set fso = CreateObject("Scripting.FileSystemObject")    
fso.CopyFile strSourcePathWithFileAndExt, strDestPathWithFinalBackslash    
Set fso = Nothing

答案 1 :(得分:1)

你还没有说过哪一行引发了错误,但我注意到你似乎没有实例化一个新的FileSystemObject:

dim fso as Object
set fso=CreateObject("Scripting.FileSystemObject")

然后使用fso引用来复制文件

fso.CopyFile CopyFrom, CopyTo

上面使用的方法&#34;后期绑定&#34;询问Scripting.FileSystemObject

的注册表

您还可以使用早期绑定并直接引用Microsoft Scripting Runtime并避免使用CreateObject

这个Stack Overflow回答详细说明: https://stackoverflow.com/a/3236348/491557