2011-04-21 97 views
0

HI; 打开文件时,我无法将CSV文件连接到SpreadSheet。目前有一个不断更新的csv日志文件。通过从外部来源的普通导入,我可以将它连接到Excel SpreadSheet,并且每小时刷新一次。但是,它是一个大文件,所以我需要使用EXCEL SQL生成报告。它不允许我在打开文件时连接到该文件。它说MS Jet数据库引擎无法打开文件'未知'。它已被其他用户专门打开,或者我需要查看其数据的权限。如果授予许可是他的问题,我在哪里授予我许可。在一个标准的Impor上,我在打开文件时读取文件没有问题,但在其他情况下,请收到此消息,无法进行处理。任何帮助,将不胜感激。如果我关闭更新程序,则可以运行查询,但如果更新正在运行,则不能运行。 使用MSO 2007 W7 x64无法通过ODBC将csv连接到Excel

回答

0

它不允许我在打开文件时连接到该文件。

这是正确的,它不会 - 没有办法改变这一点。

你必须找到另一种方法来解决你的问题。

  1. 该文件有多大?您可能可以复制临时文件名,并将Excel连接到该文件。

  2. 这听起来像你正在访问一个日志文件。 LogParser可以读取CSV。在任何情况下,LogParser都具有出色的类SQL语法,并且可以比ODBC更快速,更可靠地读取CSV文件。它也可以从Excel VBA(或脚本)编程。也许你可以使用LogParser来提取感兴趣的值,然后将它们加载到Excel表中。

我怀疑你最好的解决方法是将使用从Excel VBA的LOGPARSER的MSUtil.LogQuery对象,感兴趣的值提取到您的电子表格。由于我不知道你在做什么,这只是一个猜测!

我不能建议LOGPARSER的高度不够 - 这是一个奇妙的工具,并且可以读取几乎所有标准型日志文件,CSV,TSV,W3C,以及纯文本文件和Windows NT事件日志:

+0

感谢您的答复。我可以通过MSUTIL.LoqQuery在打开时读取该文件,并将结果集返回给我的Excel SpreadSheet? – Guilherme 2011-04-21 16:13:18

+0

可能:如果你可以在记事本中打开它,那么是的。这取决于它打开的“共享模式”。如果在没有SHARE_DENY_READ标志的情况下打开(它可能是),你会没事的。另一方面,如果它被打开了'SHARE_DENY_READ',那么没有标准的工具就能打开它,因为这就是标志的含义。 – Ben 2011-04-21 16:26:00

+0

@Guilherme,如果答案有帮助,请接受它。 – Ben 2012-02-11 21:07:04