如何使用VBA创建CurrentDb的副本

时间:2016-08-30 08:24:54

标签: ms-access access-vba ms-access-2010

我需要使用VBA创建CurrentDB的副本(大约12个副本)。副本必须是主数据库的克隆,包含所有相同的表单,查询等,只有有限的数据集除外。

DoCmd.CopyDatabaseFile似乎是为此而做的,但只有在您使用它将数据库复制到MS SQL Server时才有效。正如MS在其网站上所述:

  

将连接到当前项目的数据库复制到Microsoft   用于导出的SQL Server数据库文件。

docmd.TransferDatabase仅导出数据本身,但不导出结构,表单等。

我在网上找到的代码并且已经过调整后无法正常工作,并在.CopyFile行上发出错误说:

  

运行时错误52:文件名或编号错误

这是代码

Sub CopyDB()
Dim external_db As Object
Dim sDBsource As String
Dim sDBdest As String

sDBsource = "\\group\bsc\groups\L\BDTP\Compliance\ComplianceData\Compliance Group Reporting.accdb"
sDBdest = "\\group\bsc\groups\L\BDTP\Compliance\ComplianceData\Compliance Group Reporting_2.accdb"""

Set external_db = CreateObject("Scripting.FileSystemObject")
external_db.CopyFile sDBsource, sDBdest, True
Set external_db = Nothing

End Sub

如何解决上述问题?或者在Access中有一个直接命令来创建副本? "创建备份"函数将为此量身定制,但我无法在VBA中找到它。

1 个答案:

答案 0 :(得分:1)

看起来你在sDBdest中有额外的引用accdb""" 对于数据库副本,您也可以使用

FileCopy sDBsource, sDBdest

而不是脚本对象