我需要使用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中找到它。
答案 0 :(得分:1)
看起来你在sDBdest中有额外的引用accdb"""
对于数据库副本,您也可以使用
FileCopy sDBsource, sDBdest
而不是脚本对象