【发布时间】:2015-12-15 17:12:10
【问题描述】:
我正在尝试使用以下代码将分号分隔的.csv 文件导入到访问数据库中。我已经建立了一个名为“Import-FACTS”的导入规范。并且 VBA 可以看到规范(通过将OLEacc.CurrentProject.ImportExportSpecifications(0) 放入监视窗口。
Sub ImportFacts()
Dim OLEacc As Access.Application
Set OLEacc = GetObject("", "Access.Application")
OLEacc.OpenCurrentDatabase (ThisWorkbook.Path & "\" & "LargeData.accdb")
OLEacc.DoCmd.TransferText TransferType:=acImportDelim, _
SpecificationName:="Import-FACTS",_
TableName:="Facts",_
Filename:=ThisWorkbook.Path & "\Facts.csv",_
HasFieldNames:=False
End Sub
但是我得到了调试消息:
运行时错误“3625”文本文件规范“Import-Facts”确实 不存在您不能使用规范导入导出或链接。
有什么想法吗?
【问题讨论】:
-
是的,Microsoft Access 14.0 对象库
-
ImportExportSpecifications是已保存的作业。SpecificationName是另一回事。如果您打开一个 Access 会话(没有 Excel)并尝试相同的TransferText... 将ThisWorkbook.Path替换为包含 CSV 文件的文件夹的路径,会发生什么情况? -
@HansUp 它返回相同的错误消息。正如我所建议的那样:
DoCmd.TransferText TransferType:=acImportDelim, SpecificationName:="Import-FACTS", TableName:="Facts", FileName:="C:\***\Facts.csv", HasFieldNames:=False。您知道我如何创建导入规范而不是保存的作业吗?我没有意识到有区别。 -
@HansUp 我已经成功了!非常感谢您为我指明了正确的方向!在导入向导的高级选项中有一种保存导入规范的方法。