导入Access时,文本文件规范不存在

时间:2015-12-15 17:12:11

标签: vba excel-vba access-vba excel

我正在尝试使用以下代码将半冒号分隔的.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”有   不存在您无法使用规范导入导出或链接。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

导入重要提示

文本文件规范存在问题,因为名称可能与您检查已保存的导入时显示的名称不同。

要知道真实姓名,请运行以下SQL:

SELECT MSysIMEXSpecs.SpecName, 
       MSysIMEXColumns.FieldName, 
       MSysIMEXColumns.Start, 
       MSysIMEXColumns.Width, 
       MSysIMEXColumns.SkipColumn

FROM MSysIMEXColumns INNER JOIN 
     MSysIMEXSpecs ON MSysIMEXColumns.SpecID = MSysIMEXSpecs.SpecID

ORDER BY MSysIMEXSpecs.SpecName, 
         MSysIMEXColumns.Start, 
         MSysIMEXColumns.Width;

SpecName字段包含您要查找的正确名称!