Access 2007从VBA SysCmd 603制作ACCDE

时间:2015-12-11 00:27:51

标签: vba access-vba ms-access-2007

我正在尝试自动完成我正常运行的任务,以压缩我的数据库,保存备份,并更新我正在使用的自动更新系统的修订版号。我一直试图用vba脚本制作一个accde文件。

我发现的与该主题相关的所有内容似乎都指向使用类似的东西。

function MakeACCDE(InPath As String, OutPath As String)

Dim app As New Access.Application

app.AutomationSecurity = msoAutomationSecurityLow

app.SysCmd 603, InPath, OutPath

End Function

各种论坛上的一些用户声称此代码适用于他们,但我没有任何运气。我的数据库运行代码没有错误,但实际上没有发生任何事情。

我没有使用特定的语法,也可能是文件路径的格式?

2 个答案:

答案 0 :(得分:1)

我在http://www.experts-exchange.com/questions/28429044/How-do-I-create-an-Access-2010-accde-from-VBA.html

找到了以下代码

我已插入Access 2010 accdb,运行它,并创建了一个accde

**更新:看到你想从不同的数据库运行,我也测试了它......只需更改行&t; tmpDB_Full_Name = CurrentProject.FullName'成为您的源数据库

Option Compare Database
Option Explicit

Function Create_MDE()
 Dim tmpDB_Full_Name As String
    Dim tmpDB_Name As String
    Dim tmpDB_Backup_Full_Name As String
    Dim tmpCopy_File As Variant
    Dim tmpDirectory As String

    'Call SetStartupOptions("AllowBypassKey", dbBoolean, False)               '---This runs a procedure to deactivate the Shift & F11 key

    'tmpDB_Full_Name = CurrentProject.FullName
    tmpDB_Full_Name = "C:\data\access\MyDb.accdb"
    tmpDirectory = CurrentProject.Path
    tmpDB_Name = CurrentProject.Name

    tmpDB_Backup_Full_Name = tmpDirectory & "\" & left(tmpDB_Name, Len(tmpDB_Name) - 6) & "-Backup.accdb"

    'this removes a file created on the same day
    If Dir(tmpDB_Backup_Full_Name) <> "" Then

        Kill tmpDB_Backup_Full_Name

    End If

    'this creates a backup into destination tmpDirectory
    If Dir(tmpDB_Backup_Full_Name) = "" Then

        Set tmpCopy_File = CreateObject("Scripting.FileSystemObject")
        tmpCopy_File.CopyFile tmpDB_Full_Name, tmpDB_Backup_Full_Name, True

    End If

    Dim app As New Access.Application

    app.AutomationSecurity = msoAutomationSecurityLow

    app.SysCmd 603, tmpDB_Backup_Full_Name, tmpDirectory & "\" & left(tmpDB_Name, Len(tmpDB_Name) - 9) & ".accde"

    'Call SetStartupOptions("AllowBypassKey", dbBoolean, True)                 '---This runs a procedure to activate the Shift & F11

    MsgBox ("Compile Complete!")

End Function

答案 1 :(得分:0)

我已经在Access 2016中使用ACCDE和ACCDR作为目标文件扩展名测试了以下代码:

        Dim otherAccess As Access.Application
        Set otherAccess = New Access.Application
        otherAccess.AutomationSecurity = 1 'msoAutomationSecurityLow
        otherAccess.SysCmd 603, InPath, OutPath
        otherAccess.Quit acQuitSaveNone
        Set otherAccess = Nothing