我有一个Access 2010 accdb数据库,我从Access 2003 mdb数据库转换而来 当我在Access 2003中运行以下代码时,它将创建一个数据库,默认情况下,该数据库具有对ADODB的引用 - " Microsoft ActiveX Data Objects 2.5 Library" (msado25.tlb)。
Set dbNewApp = Application.DBEngine.CreateDatabase("Test.mdb", dbLangGeneral)
如果我在Access 2010中运行以下(类似)代码,它会成功创建一个accdb数据库,但是上面没有对ADODB库的引用。
Set dbNewApp = Application.DBEngine.CreateDatabase("Test.accdb", dbLangGeneral)
根据以下链接,创建新数据库时包含的默认引用已在DAO和ADODB之间更改,并在各种版本的Access上再次更改:http://allenbrowne.com/ser-38.html
所以我需要我新创建的数据库来引用ADODB。
我知道如何更改当前db的引用...
Set refNew = References.AddFromGuid("{00000205-0000-0010-8000-00AA006D2EA4}", 2, 5)
但是,如何对我刚刚使用DBEngine.CreateDatabase创建的另一个访问数据库执行此操作?
答案 0 :(得分:3)
创建数据库后,应该可以打开它并添加引用:
Sub CreateDB()
Dim acApp As Access.Application
Dim dppath As String
dbpath = "z:\docs\newmsmdb.mdb"
''http://msdn.microsoft.com/en-us/library/office/ff835033.aspx
CreateDatabase dbpath, dbLangGeneral, dbVersion40
''http://msdn.microsoft.com/en-us/library/office/aa140509(v=office.10).aspx
Set acApp = New Access.Application
With acApp
.OpenCurrentDatabase dbpath
acApp.References.AddFromFile _
"c:\program files\common files\system\ado\msado15.dll"
End With
End Sub