如何使用VBA创build一个空白的MS Access数据库?

我是一个总noob尝试在Excel中使用VBA创build一个空白的MS Access数据库。 我想命名新的数据库“tblImport”。 这是我使用的代码:

Sub makedb() Dim accessApp As Access.Application Set accessApp = New Access.Application accessApp.DBEngine.CreateDatabase "C:\tblImport.accdb", dbLangGenera accessApp.Quit Set accessApp = Nothing End Sub 

我收到以下错误信息:

“运行时错误3001:应用程序定义或对象定义的错误”

我能做什么?

CreateDatabase方法中的语言环境常量的名称是错误的:

这个:
accessApp.DBEngine.CreateDatabase "C:\tblImport.accdb", dbLangGenera

应该:
accessApp.DBEngine.CreateDatabase "D:\tblImport.accdb", DB_LANG_GENERAL

改变这一点,你的代码应该工作。 (至less对我来说)。

老问题,但它对我有用。 好像你甚至不需要Access对象。

 Access.DBEngine.CreateDatabase "D:\tblImport.accdb", DB_LANG_GENERAL 

对我来说工作得很好。

如果您打算使用您创build的自动化对象,则应该使用第一种方法。 您可以打开表单,使用DoCmd语句等,只需在每个语句前加上“accessApp”即可。 例如,我使用TempVars来保存用户数据。 我可以使用自动化打开一个相关的数据库,然后做

accessApp.TempVars.Add "CurrentUser", TempVars.CurrentUser

将CurrentUser值从活动数据库传递到新数据库。

当你想要做的就是创build一个新的数据库来执行一个函数,如DoCmd.TransferDatabase ,你可以使用

Access.DBEngine.CreateDatabase "D:\tblImport.accdb", DB_LANG_GENERAL

老问题。 这是我的两分钱。 你有一个错字…

dbLangGenera应该是dbLangGeneral

更多关于它在Workspace.CreateDatabase方法(DAO)

投票结束这个问题, 以明显的答复处理问题

尝试这个。 这工作。

 Sub makedb() Dim accessApp As Access.Application Set accessApp = New Access.Application accessApp.DBEngine.CreateDatabase "C:\tblImport.accdb", dbLangGeneral accessApp.Quit Set accessApp = Nothing End Sub 

编辑 :将删除这个答案,并张贴后,作为一个postclosures。