加载csv“找不到可安装的ISAM”

我在Excel VBA中创build一个程序来自动化一个进程,并且我需要导入一个csv文件中存储的数据。 所以,我试图使用查询表导入csv文件中的特定列。

我使用ADO来使用Jet Provider OLE DB与csv文件进行交互。 在连接string中,我指定了提供者,数据源和扩展属性。 我使用Windows XP和Office 2003,所以我的Excel版本是8.0。 我指定提供程序为Microsoft.Jet.OLEDB.4.0。 我的代码粘贴在下面。 当代码执行时,我在下面的代码中包含的最后一行出现错误“Could not find installable ISAM”。 我不能find任何错误的语法,所以我想知道如果这个错误可能是因为我没有正确版本的Jet安装? 请参阅下面的代码。 谢谢

Sub Excel_QueryTable() Dim oCn As ADODB.Connection Dim oRS As ADODB.Recordset Dim ConnString As String Dim SQL As String Dim qt As QueryTable ConnString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=C:\testfile.csv;" & _ "Extended Properties=Excel 8.0;HDR=Yes; FMT=Delimited; IMEX=1""," Set oCn = New ADODB.Connection oCn.ConnectionString = ConnString oCn.Open 

尝试这个:

 ConnString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=C:\directory\where\csv\file\is\;" & _ "Extended Properties=""text;HDR=Yes;FMT=Delimited""" 

我不认为你想要使用“Excel 8.0”部分,但实际上并没有连接到Excel工作表; 你正在连接到一个文本文件。 此外,你有额外的空间,连接string真的挑剔这些,所以我删除了它们。

请注意,您可以在此处设置分隔符:

 HKLM\SOFTWARE\Microsoft\Jet\4.0\Engines\Text\Format 

矿山目前有CSVDelimited ; 其他选项是TabDelimitedDelimited(;)

我在http://www.connectionstrings.com/textfilefind了这个信息

– 编辑 –

不是指向特定的.csv文件,而是实际上将数据源指向目标目录 。 请注意我上面的更改,在连接string中:文件名已被删除,path现在以\结尾。

为了使用这种types的数据源,您实际上需要教导驱动程序文件的布局。 您可以通过使用schema.ini文件来完成此操作 。

您可以使用以下两种方法之一创build.ini文件:

  • 手动手动编辑文件,在记事本中,使用上面的链接提供使用。
  • 使用内置在ODBC数据源pipe理中的工具。

为了使用该工具,您需要实际完成创build数据源的步骤。 您实际上并不需要数据源,但据我所知,这是到创buildschema.ini创build工具的唯一途径。

到那里:

  • 转到ODBC控制面板。
  • 添加一个新的DSN,键入:Microsoft文本驱动程序(* .txt,* .csv),单击完成
  • 在“ODBC文本设置”上,取消选中Use Current Directory并select文件所在的目录。
  • 点击选项button,然后点击Define Formatbutton。
  • 点击你要使用的文件,然后点击“猜”来开始,然后根据需要细化数据types。
  • 完成后,单击确定,您应该在您的.csv文件所在的目录中看到一个schema.ini文件。 在记事本中打开它,并确保它看起来是正确的。

上面的连接string现在应该正常工作,仅使用您的csv所在的目录,而不是.csv的完整path。