在excel vba中使用jet oledb连接打开csv文件时出错
我第一次使用stackoverflow,所以这里是 当我试图在excel中运行宏(用于从CSV文件中提取数据)时,我会间歇性地出错。如果我启动一个新的会话,错误通常会消失,但这次它特别持久。它在下面的.Open行中基本上是错误的,给了我一个运行时错误'2147467259'80004005未指定的错误:在excel vba中使用jet oledb连接打开csv文件时出错,vba,oledb,oledbconnection,Vba,Oledb,Oledbconnection,我第一次使用stackoverflow,所以这里是 当我试图在excel中运行宏(用于从CSV文件中提取数据)时,我会间歇性地出错。如果我启动一个新的会话,错误通常会消失,但这次它特别持久。它在下面的.Open行中基本上是错误的,给了我一个运行时错误'2147467259'80004005未指定的错误: Public Sub LoadFile() file_path = Range("FlatFileLocation") Set oConn = CreateObject("ADODB.Con
Public Sub LoadFile()
file_path = Range("FlatFileLocation")
Set oConn = CreateObject("ADODB.Connection")
strcon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & file_path & "; Extended Properties=""text;HDR=Yes;FMT=Delimited(,)"";"
oConn.Open strcon
.....
其他资料:
1我试图访问的文件未被其他用户打开
2我在sub结束时关闭了连接。此外,我刚刚尝试重新启动我的机器,错误发生在我第一次尝试运行文件时
3当我在没有任何现有加载项的情况下打开会话时,它似乎可以工作。有没有办法检查是否存在某种addin冲突
还有其他帖子建议使用。在尝试此路线之前,我有以下问题:
1我可以跨多个用户机器使用此CSVReader吗?我这里的问题是需要在许多机器上安装它。不过,我可能可以将文件放在共享驱动器上
2我可以用SQL字符串查询结果文件吗?现在我用的是这样的东西:
....
strsql = "SELECT * FROM ( " & strsql & " ) WHERE ( ABS(PrevRisk) + ABS(CurrRisk) >= " & RiskThreshold & " ) ;"
Set oResult = New ADODB.Recordset
oResult.Open strsql, oConn
....
提前感谢您的帮助 CSVReader io是用C编写的。如果要从VBA使用它,必须将其作为COM对象公开。至于使用SQL进行查询,CSVReader不支持SQL。感谢您的回复-我想出于我的目的,这排除了它。是否有其他方法可以从excel查询CSV文件中的数据?我听说首先将其转换为MDB文件可能是个好主意?这必须在Excel环境中进行吗?您可以从CVS导入并导出到WSH下的Excel文件保存一个扩展名为.vbs的文件并运行它。如果您认为这是外接程序问题,您可以从VBA IDE窗口“外接程序->外接程序管理器”一次禁用一个外接程序…不知道这是否有帮助,但可以尝试编写一个文件示例。