vba - 使用 VBA 代码从内部复制 Access 数据库

标签 vba ms-access copy

有没有办法通过 VBA 代码从 Access 数据库内部复制它? 我尝试过使用 fso.CopyFile 和 FileCopy,但它们会导致权限错误,因为文件已经打开。

最佳答案

我发现可以使用shell32.dll函数来复制打开的文件。我什至添加了进度条功能。这是代码

Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long

Public Const FO_COPY = &H2
Public Const FOF_SIMPLEPROGRESS = &H100

Public Type SHFILEOPSTRUCT
    hWnd As Long
    wFunc As Long
    pFrom As String
    pTo As String
    fFlags As Integer
    fAnyOperationsAborted As Long
    hNameMappings As Long
    lpszProgressTitle As Long
End Type

Public Sub VBCopyFile(ByRef strSource As String, ByRef strTarget As String)
     Dim op As SHFILEOPSTRUCT

     With op
       .wFunc = FO_COPY
       .pTo = strTarget
       .pFrom = strSource
       .fFlags = FOF_SIMPLEPROGRESS
    End With

    '~~> Perform operation
    SHFileOperation op
End Sub

我只需要使用适当的参数调用 VBCopyFile Sub 就可以了。

关于vba - 使用 VBA 代码从内部复制 Access 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39146479/

相关文章:

sql - 如何在 VBA 逗号分隔列表中仅将引号放在字符串(而不是数字)上?

ms-access - 如果没有 .movelast,我会遇到这个 .recordcount() 问题吗?

bash - 在 bash 中,cp 会在使用通配符时复制点文件吗?我应该使用哪个选项

将一个结构体数组复制到另一个更小的结构体数组

从列表中随机选择

string - 确保字符串数字操作与文化无关

vba - 是否可以自动执行 PowerPoint 2010 的“比较演示文稿”功能?

java - 使用Java从Ms. Access 2.0获取表名列表

vba - VBA 中的时间比较 : inequal while same time

go - 如何将 slice 复制到自身