只要目标数据库当前未打开,我就可以连接到远程.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.
为什么这样以及如何解决?
答案 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""")