Ms access 用于创建Access备份的VBA代码

Ms access 用于创建Access备份的VBA代码,ms-access,vba,database-backups,Ms Access,Vba,Database Backups,我只想创建access的备份文件,这样来自fronted的用户可以按下按钮并创建备份 我正在尝试这段代码,这使得数据库的副本,但也复制了我的VBA代码。我只想复制表格。没有表格,没有报告 是否可以从VBA压缩它 Function fMakeBackup() Dim Source As String Dim Target As String Dim retval As Integer Source = CurrentDb.Name Target = "C:\Users\Documents\

我只想创建access的备份文件,这样来自fronted的用户可以按下按钮并创建备份

我正在尝试这段代码,这使得数据库的副本,但也复制了我的VBA代码。我只想复制表格。没有表格,没有报告

是否可以从VBA压缩它

Function fMakeBackup()

Dim Source As String
Dim Target As String
Dim retval As Integer


Source = CurrentDb.Name

Target = "C:\Users\Documents\FileName"
Target = Target & Format(Date, "dd-mm") & "   "
Target = Target & Format(Time, "hh-mm") & ".accdb"

' create the backup
retval = 0
Dim objFSO As Object
Set objFSO = CreateObject("Scripting.FileSystemObject")
retval = objFSO.CopyFile(Source, Target, True)
Set objFSO = Nothing

End Function
更新1 使用@Sergey给出的解决方案

我修改代码如下

函数fMakeBackup()

当我执行此操作时,会显示一个弹出窗口

如果我在选项上单击其中一个,代码将给出错误

Runtime error 3024 
Copy object action was canceled 

可以将数据库对象逐个复制到远程数据库。例如,表使用如下代码:

DoCmd.CopyObject TargetFileName, "MyLocalTableName", acTable, "MyRemoteTableName"
应已创建目标文件

要将所有本地表复制到远程数据库,请执行以下操作:

Dim tdf As TableDef

For Each tdf In CurrentDb.TableDefs
    DoCmd.CopyObject TargetFileName, tdf.Name, acTable, tdf.Name
Next

可以将数据库对象逐个复制到远程数据库。例如,表使用如下代码:

DoCmd.CopyObject TargetFileName, "MyLocalTableName", acTable, "MyRemoteTableName"
应已创建目标文件

要将所有本地表复制到远程数据库,请执行以下操作:

Dim tdf As TableDef

For Each tdf In CurrentDb.TableDefs
    DoCmd.CopyObject TargetFileName, tdf.Name, acTable, tdf.Name
Next

默认情况下,Access不允许启用新创建的目标数据库,因此会出现错误。如果创建目标并确保已通过信任中心设置启用该目标,则可以解决此问题(但这也意味着您需要重新考虑如何通过添加日期和时间重命名数据库)。

默认情况下,Access将不允许启用新创建的目标数据库,因此会出现错误。如果您创建了目标并确保通过信任中心设置启用了该目标,则可以解决此问题(但这也意味着您需要重新考虑如何通过添加日期和时间来重命名数据库)。

谢谢,但当我运行代码时,get
Runtime error 3024
找不到文件
。我应该在你的代码之前再写一行代码吗?我是VBA编程新手。正如我所说的“应该已经创建了目标文件”,所以您需要首先手动创建它,或者使用您已经使用的过程从空模板复制。我使用
access.DBEngine.CreateDatabase Target创建了一个空的access数据库文件,DB_LANG_GENERAL
但仍收到运行时错误3024
复制对象操作被取消
无法在注释中添加新行,因此对上述问题进行更新1。那么,有没有办法将远程对象复制到本地数据库?谢谢,但当我运行代码时,获取
运行时错误3024
找不到文件
。我应该在你的代码之前再写一行代码吗?我是VBA编程新手。正如我所说的“应该已经创建了目标文件”,所以您需要首先手动创建它,或者使用您已经使用的过程从空模板复制。我使用
access.DBEngine.CreateDatabase Target创建了一个空的access数据库文件,DB_LANG_GENERAL
但仍出现运行时错误3024
复制对象操作已取消
无法在注释中添加新行,因此对上述问题进行更新1。那么,是否有任何方法将远程对象复制到本地数据库?