【问题标题】:Copy Access Database using VBA code from within使用 VBA 代码从内部复制 Access 数据库
【发布时间】:2016-08-25 13:19:49
【问题描述】:

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

【问题讨论】:

标签: vba ms-access copy


【解决方案1】:

我发现您可以使用 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 即可。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-27
    • 2019-11-25
    • 2017-11-10
    • 2010-12-10
    • 2014-08-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多