使用Access vba从unopenable mdb文件导入所有表

时间:2015-02-11 03:31:18

标签: vba

我有一个问题。

差不多,我有一个无法打开的mdb文件(用户帐户没有权限),但可以将其导入Access 2010.我需要自动执行此操作以打开任意数量的文件(假设现在使用mdb文件) )。

显然,DoCmd.TransferDatabase不允许我忽略源表名(尽管在api中是可选的)。在我尝试导入文件之前,我无法知道这些表是什么。

我需要一种方法来自动完成此过程,同时绕过用户帐户错误。

最后

DoCmd.TransferDatabase acExport," Microsoft Access",theFile,acTable

这是我的尝试,它收到3011错误

谢谢

1 个答案:

答案 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

结束功能