我有一个问题。
差不多,我有一个无法打开的mdb文件(用户帐户没有权限),但可以将其导入Access 2010.我需要自动执行此操作以打开任意数量的文件(假设现在使用mdb文件) )。
显然,DoCmd.TransferDatabase不允许我忽略源表名(尽管在api中是可选的)。在我尝试导入文件之前,我无法知道这些表是什么。
我需要一种方法来自动完成此过程,同时绕过用户帐户错误。
最后
DoCmd.TransferDatabase acExport," Microsoft Access",theFile,acTable
这是我的尝试,它收到3011错误
谢谢
答案 0 :(得分:0)
无视,我放弃使用TransferDatabase来获取所有表并使用其他方法来执行此操作。似乎通过vba打开工作簿绕过了我试图直接打开它的安全错误。
这是代码:
Private Function importTables(theFile As Variant)
Dim db As Database
Dim td As TableDef
Set db = DBEngine.Workspaces(0).OpenDatabase(theFile, True)
For Each td In db.TableDefs
If Left(td.Name, 4) <> "MSys" And Left(td.Name, 4) <> "~TMP" Then
DoCmd.TransferDatabase acImport, "Microsoft Access", theFile, acTable, _
td.Name, td.Name
End If
Next
db.Close
结束功能