"杀" /" FileCopy"导致许可被拒绝

时间:2018-01-24 10:31:32

标签: vba access permission-denied

我的Access VBA宏出现问题,由于某种原因导致这些行出现错误" Permission Denied [运行时错误70]:

sOutputFile = CurrentProject.Path & "\Output Files\Recon\" & sDate & " " & sClient & " Cash Recon.xlsx"
sTemplateFile = CurrentProject.Path & "\Temp Files\Template_Listed.xlsx"
If Dir(sOutputFile) <> "" Then Kill sOutputFile
FileCopy sTemplateFile, sOutputFile

得到什么&#34;指出&#34;直接就是&#34; Kill sOutputFile&#34;短语。

值得一提的是,我没有打开任何文件,我可以完全访问目录,不久前(在声明sOutputFile和sTemplateFile之前),它们都被清除了。

非常感谢任何帮助,如果需要,我愿意分享更多代码。

编辑:此外,宏不时会转到下一行,而是在FileCopy中断。

2 个答案:

答案 0 :(得分:1)

在我看来,逻辑并不完全正确,请尝试以下(FileCopy应位于If ... End If内):

sOutputFile = CurrentProject.Path & "\Output Files\Recon\" & sDate & " " & 
sClient & " Cash Recon.xlsx"
sTemplateFile = CurrentProject.Path & "\Temp Files\Template_Listed.xlsx"
If FileExists(sOutputFile) Then 
  Kill sOutputFile
  FileCopy sTemplateFile, sOutputFile
End If

这是FileExists函数:

Public Function FileExists_1(sFileName As String) As Boolean
  Dim obj_fso As Object

  Set obj_fso = CreateObject("Scripting.FileSystemObject")
  FileExists_1 = obj_fso.fileExists(sFileName)

  Set obj_fso = Nothing
End Function

答案 1 :(得分:0)

我的情况是什么问题,是我之前使用过宏,但是完整的运行失败了。在经过一些调整后尝试再次运行它(与我在此处发布的代码无关)后,上述问题正在发生。所有这些只是因为我的文件仍然在我的excel的内存中打开,因此无法删除该文件。

感谢所有贡献的人。你一如既往地惊叹!