Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.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:从ODBC文件刷新SQL_Sql_Excel_Odbc - Fatal编程技术网

Excel:从ODBC文件刷新SQL

Excel:从ODBC文件刷新SQL,sql,excel,odbc,Sql,Excel,Odbc,我正在使用Excel2010通过ODBC数据连接读取一些SQL数据。为此,我有.odc连接文件,可以通过“数据”选项卡和“现有连接”按钮访问这些文件。Excel可以找到ODC文件,并且可以很好地从中检索数据。Microsoft Query也可以编辑查询,没有问题 问题,也是我选择.odc文件的原因,是我希望能够更改查询的底层数据源以及查询本身。你们看,这些数据是我在Excel中进一步处理的模拟输出;模拟器输出一个SQLite数据库。我定期在模拟器中进行更改以修复bug,然后重新运行以获取新数据。

我正在使用Excel2010通过ODBC数据连接读取一些SQL数据。为此,我有.odc连接文件,可以通过“数据”选项卡和“现有连接”按钮访问这些文件。Excel可以找到ODC文件,并且可以很好地从中检索数据。Microsoft Query也可以编辑查询,没有问题

问题,也是我选择.odc文件的原因,是我希望能够更改查询的底层数据源以及查询本身。你们看,这些数据是我在Excel中进一步处理的模拟输出;模拟器输出一个SQLite数据库。我定期在模拟器中进行更改以修复bug,然后重新运行以获取新数据。输出格式(即表结构和格式等)是相同的,只是数据不同

因此,我们的想法是能够编辑.odc文件以使用具有更新模拟结果的数据库,在Excel中点击refresh并使用它(该.odc文件包含连接字符串和SQL字符串)。在处理完之后,我发现Excel将接收对连接字符串的任何编辑(即更改数据库文件),但它拒绝接收对SQL的任何更改

诚然,对SQL查询的编辑不应该经常发生,但偶尔也会发生。对我来说,在SQL中而不是在Excel中进行一些计算并不少见,因为坦率地说,混合使用“实时”数据表列(或其他名称)和“常规”派生列听起来像是一个痛苦的世界。但是,由于我在这些计算中出错,我想更新它们,这意味着更新SQL

显然,Excel将从ODC文件中读取连接字符串,但很乐意忽略其中的SQL查询,并(我猜)将其存储在XLS文件中。我只能想象,如果你在一家公司的环境中,有一些分析查询或ODC文件中存储的东西,却发现你可以在公司范围内的每台计算机上手动进行更改,那该有多可怕

是我做错了什么,还是这是我的本意?有没有办法让Excel实际使用ODC文件中的SQL,而不是始终使用其本地版本?

有几件事:

Part 1
 - Create a template .ODC file.  
    - Create a connection Data tab, From Other Sources, follow the wizard, connect to the DB and data table.
 - Go to the Data tab, Connections and set the connection properties that you want.
 - Export the connection

Part 2
 - Create the working SQL query for SQLite that produces the desired results
 - Put the entire SQL query on one line (odc files like everything on one line, don't ask)

Part 3
 - Right click on the .odc file, use 'Open with' and open it in notepad or notepad++ (NOT WORD)
 - Look for <odc:CommandText> </odc:CommandText>
 - Remove the text that is there and paste your one line query between the commandtext tags
 - Save the .odc file
 - Double click on the .odc file and see if the data opens/appears in Excel

Don't forget to double check to make sure the data in the <odc:ConnectionString> </odc:ConnectionString> is correct.
第1部分
-创建一个template.ODC文件。
-创建连接数据选项卡,从其他源,按照向导,连接到数据库和数据表。
-转到“数据”选项卡“连接”,然后设置所需的连接属性。
-导出连接
第二部分
-为SQLite创建工作SQL查询,以生成所需的结果
-将整个SQL查询放在一行上(odc文件与所有内容一样放在一行上,不要问)
第三部分
-右键单击.odc文件,使用“打开方式”并在记事本或记事本++中打开它(不是WORD)
-寻找
-删除其中的文本,并在commandtext标记之间粘贴单行查询
-保存.odc文件
-双击.odc文件,查看数据是否在Excel中打开/显示
别忘了仔细检查以确保中的数据正确无误。