如何通过VBA从另一个MS Access 2010数据库中写入当前打开的MS Access 2010数据库

时间:2017-09-08 07:34:17

标签: access-vba ms-access-2010

只要目标数据库当前未打开,我就可以连接到远程.accdb文件以将内容写入表中,但即使打开它,我也不得不写入该数据库。手动从database1.tableA手动复制和粘贴到database2.tableA,两者都打开工作正常。但是为什么VBA没有完成这项工作?这是我到目前为止所尝试的:

方式1:

...
Dim dbTarget As Database

Set dbTarget = DBEngine.Workspaces(0).OpenDatabase("X:\path\to\file.accdb")
...

错误(翻译自德语):

... failed with error (3029): No valid account name or no valid password.

方式2:

...
Dim wrkDev As Workspace
Dim dbTarget As Database

Set wrkDev = CreateWorkspace("", "Admin", "", dbUseJet)   ' adopted from microsoft docs

Set dbTarget = wrkDev.OpenDatabase("X:\path\to\file.accdb", True)
...

错误(翻译自德语):

... failed with error (3029): No valid account name or no valid password.

为什么这样以及如何解决?

1 个答案:

答案 0 :(得分:0)

有几种方法可以在Access中打开数据库和数据库连接。你已经分享了几个,但也可以尝试其他人。我假设您正在使用DAO记录集进行插入。

在单独的Access应用程序中打开数据库,并创建对数据库对象的引用

Dim A As New Access.Application
A.OpenCurrentDatabase "X:\path\to\file.accdb"
Dim db As Database
Set db = A.CurrentDb()

使用FROM子句中的SQL IN语句在远程数据库上打开记录集

Dim rs As Recordset
Set rs = CurrentDb.OpenRecordset ("SELECT * FROM MyTable IN ""X:\path\to\file.accdb""")