【问题标题】:How can you convert an ACCDB to an MDB programmatically?如何以编程方式将 ACCDB 转换为 MDB?
【发布时间】:2013-02-05 04:21:00
【问题描述】:

有没有办法以编程方式将Access 2010 ACCDB 文件转换为Access 95/97 MDB 文件?

【问题讨论】:

    标签: ms-access ms-access-2010 ms-jet-ace ms-access-97


    【解决方案1】:

    这里有一些注释。我没有旧版本可以玩,所以我不知道您是否可以导入多于导出:

    Dim ws As Workspace
    Dim db As Object
    Dim tdf As TableDef
    Dim qdf As QueryDef
    Dim dbExp As Database
    Dim acApp As New Access.Application
    
    acApp.OpenCurrentDatabase "z:\docs\demo.accdb"
    Set dbExp = acApp.CurrentDb
    
    Set ws = DBEngine.Workspaces(0)
    FName = "z:\docs\oldver95.mdb"
    ''Access 95
    Set db = ws.CreateDatabase(FName, dbLangGeneral, dbVersion30)
    ''You can only export tables and a limited range of datatypes
    For Each tdf In dbExp.TableDefs
        If Left(tdf.Name, 4) <> "Msys" Then
            acApp.DoCmd.TransferDatabase acExport, "Microsoft Access", _
               FName, acTable, tdf.Name, tdf.Name
        End If
    Next
    

    http://msdn.microsoft.com/en-us/library/office/bb243161(v=office.12).aspx

    使用VBScript演示引擎使用的几点说明:

    Dim objEngine
    Dim objWS
    Dim objDB
    Dim db: db = "z:\docs\oldver95.mdb"
    
    Set objEngine = CreateObject("DAO.DBEngine.36")
    Set objDB = objEngine.OpenDatabase(db)
    
    strSQL="SELECT * FROM Table1"
    
    objDB.CreateQueryDef "Query1", strSQL
    

    【讨论】:

    • 好的,那么您必须在机器上安装 Access 吗?那会是 Access 2010 吗?
    • 您正在使用引擎,您可以使用查询而不是 TransferDatabase 来传输表,因此您可以使用免费的 2010 可再发行组件,而不是完整版的 MS Access。 (测试是在 2010 年)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-06
    • 1970-01-01
    • 2013-03-27
    相关资源
    最近更新 更多