【发布时间】:2016-11-04 11:38:42
【问题描述】:
我有一个 Access DB,其中包含几个不同的表,每个表都有不同的结构(字段数和名称、行数、标题)。
我想做的是将所有这些表导出到 txt 文件中,并带有给定的分隔符(“|”),点作为小数点分隔符,字符串用引号。
我浏览了互联网,得到的是:
- 使用
DoCmd.TransferText acExportDelim命令 - 保存自定义导出规范并应用它
我收到一条错误消息(“对象不存在”),我认为这与导出规范是“特定于工作表”的事实有关,即不适用于具有不同字段和字段名的表。
你能帮帮我吗? 谢谢!!
编辑。 我还发布了我运行的原始代码。正如我之前所说,我是 VBA 新手,所以我只是在网络上查找代码,根据我的需要对其进行调整,然后运行。
Public Sub ExportDatabaseObjects()
On Error GoTo Err_ExportDatabaseObjects
Dim db As Database
Dim db As DAO.Database
Dim td As TableDef
Dim sExportLocation As String
Dim a As Long
Set db = CurrentDb()
sExportLocation = "C:\" 'Do not forget the closing back slash! ie: C:\Temp\
For a = 0 To db.TableDefs.Count - 1
If Not (db.TableDefs(a).Name Like "MSys*") Then
DoCmd.TransferText acExportDelim, "Export_specs", db.TableDefs(a).Name, sExportLocation & db.TableDefs(a).Name & ".txt", True
End If
Next a
Set db = Nothing
MsgBox "All database objects have been exported as a text file to " & sExportLocation, vbInformation
Exit_ExportDatabaseObjects:
Exit Sub
Err_ExportDatabaseObjects:
MsgBox Err.Number & " - " & Err.Description
Resume Exit_ExportDatabaseObjects
End Sub
在运行代码之前,我手动导出了第一个将 Export_specs 保存到文件的表。
考虑一个包含两个表 A 和 B 的数据库。 当我运行代码 A 正确导出时,我收到以下错误消息“3011 - Microsoft Access 数据库引擎找不到对象'B#txt'。确保对象存在并且拼写它的名称和路径名称正确。如果 'B#txt' 不是本地对象,请检查您的网络连接或联系服务器管理"。
【问题讨论】:
-
什么对象不存在?
-
请发布完整代码。
TransferText行没有引用导出规范。