Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 在共享模式下工作的当前项目的Copyfile给出;“拒绝许可”;以独占模式_Ms Access_Vba - Fatal编程技术网

Ms access 在共享模式下工作的当前项目的Copyfile给出;“拒绝许可”;以独占模式

Ms access 在共享模式下工作的当前项目的Copyfile给出;“拒绝许可”;以独占模式,ms-access,vba,Ms Access,Vba,下面是一些Access 2013代码的精简版,它只是以一个新名称复制了当前项目 仅当文件以共享模式打开时,它才起作用。如果以独占模式打开,将生成“权限被拒绝”错误 我很惊讶我的研究没有解释这一点。在以独占模式打开的数据库中,是否可以使用其他文件复制方法?或者我需要一个在数据库之外运行的方法吗?试试FileCopy source,Destination文档说,对于打开的、共享的或独占的文件,它根本不起作用,但可以尝试一下。文档似乎是正确的;FileCopy不适用于任何打开的文件。该文章中描述的Co

下面是一些Access 2013代码的精简版,它只是以一个新名称复制了当前项目

仅当文件以共享模式打开时,它才起作用。如果以独占模式打开,将生成“权限被拒绝”错误


我很惊讶我的研究没有解释这一点。在以独占模式打开的数据库中,是否可以使用其他文件复制方法?或者我需要一个在数据库之外运行的方法吗?

试试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