Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在excel vba中使用jet oledb连接打开csv文件时出错_Vba_Oledb_Oledbconnection - Fatal编程技术网

在excel vba中使用jet oledb连接打开csv文件时出错

在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

我第一次使用stackoverflow,所以这里是

当我试图在excel中运行宏(用于从CSV文件中提取数据)时,我会间歇性地出错。如果我启动一个新的会话,错误通常会消失,但这次它特别持久。它在下面的.Open行中基本上是错误的,给了我一个运行时错误'2147467259'80004005未指定的错误:

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窗口“外接程序->外接程序管理器”一次禁用一个外接程序…不知道这是否有帮助,但可以尝试编写一个文件示例。