Ms access 在共享模式下工作的当前项目的Copyfile给出;“拒绝许可”;以独占模式
下面是一些Access 2013代码的精简版,它只是以一个新名称复制了当前项目 仅当文件以共享模式打开时,它才起作用。如果以独占模式打开,将生成“权限被拒绝”错误Ms access 在共享模式下工作的当前项目的Copyfile给出;“拒绝许可”;以独占模式,ms-access,vba,Ms Access,Vba,下面是一些Access 2013代码的精简版,它只是以一个新名称复制了当前项目 仅当文件以共享模式打开时,它才起作用。如果以独占模式打开,将生成“权限被拒绝”错误 我很惊讶我的研究没有解释这一点。在以独占模式打开的数据库中,是否可以使用其他文件复制方法?或者我需要一个在数据库之外运行的方法吗?试试FileCopy source,Destination文档说,对于打开的、共享的或独占的文件,它根本不起作用,但可以尝试一下。文档似乎是正确的;FileCopy不适用于任何打开的文件。该文章中描述的Co
我很惊讶我的研究没有解释这一点。在以独占模式打开的数据库中,是否可以使用其他文件复制方法?或者我需要一个在数据库之外运行的方法吗?试试FileCopy source,Destination文档说,对于打开的、共享的或独占的文件,它根本不起作用,但可以尝试一下。文档似乎是正确的;FileCopy不适用于任何打开的文件。该文章中描述的CopyFile方法是一个windows api调用,声明函数apiCopyFile Lib“kernel32”别名“CopyFileA”(ByVal lpExistingFileName为字符串,val lpNewFileName为字符串,val BFailifExisting为长)只要我认为它使用的方法与您的代码不同,我就不能100%确定这一点,但值得一试。我已经在Windows10机器上使用access2007在Northwind示例数据库打开的情况下对其进行了测试,结果成功,下面是我使用的代码。
Private Sub TestCopy()
Dim sSourceFile, sSourcePath, sTargetFile, sTargetPath As String
Dim AccessObj As Object
sSourceFile = CurrentProject.Name
sSourcePath = CurrentProject.Path
sTargetFile = "TestCopy.accdb"
sTargetPath = CurrentProject.Path
Set AccessObj = CreateObject("Scripting.FileSystemObject")
AccessObj.CopyFile sSourcePath & "\" & sSourceFile, sTargetPath & "\" & sTargetFile, True
Set AccessObj = Nothing
End Sub