使用 VBA 代码从内部复制 Access 数据库
Posted
技术标签:
【中文标题】使用 VBA 代码从内部复制 Access 数据库【英文标题】:Copy Access Database using VBA code from within 【发布时间】:2016-08-25 13:19:49 【问题描述】:有没有办法通过 VBA 代码从内部复制 Access 数据库? 我试过使用 fso.CopyFile 和 FileCopy 但由于文件已经打开,它们会导致权限错误。
【问题讨论】:
***.com/questions/39127550/… 谢谢,我使用了 shell32.dll 的库函数,它能够复制打开的文件。 【参考方案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 即可。
【讨论】:
以上是关于使用 VBA 代码从内部复制 Access 数据库的主要内容,如果未能解决你的问题,请参考以下文章
VBA/SQL ACCESS:将查询结果复制到其他访问数据库中的表