有没有办法通过 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/