2011-07-16 20 views
0

私はExcel 2010を使用して、ODBCデータ接続を使用していくつかのSQLデータを読み込んでいます。これを行うには、 "データ"タブと "既存の接続"ボタンからアクセスできる.odc接続ファイルがあります。 ExcelはODCファイルを見つけ出し、そこからデータを取得できます。 Microsoft Queryはクエリを編集することもできます。Excel:ODBCファイルからSQLをリフレッシュ

問題と私が.odc-filesを選択した理由は、クエリの基礎となるデータソースとクエリ自体を変更できるようにすることです。ご覧のとおり、このデータは私がExcelでさらに処理しているシミュレーション出力です。シミュレータはSQLiteデータベースを出力します。私は定期的にバグを修正するためにシミュレータを変更し、再実行して新しいデータを取得します。出力フォーマット(つまり、テーブル構造とフォーマットとそのすべて)は同じで、異なるデータだけです。

したがって、より新しいシミュレーション結果を持つデータベースを使用するように.odcファイルを編集し、Excelでリフレッシュして終了することが考えられます(.odcファイルには接続文字列とSQL文字列)。 the horribly bugged "always use this connection" checkboxで作業した後、私はExcelが接続文字列の編集(つまり、データベースファイルの変更)を取り上げるが、SQLへの変更があればそれを受け入れることを拒否することがわかった。

SQLクエリーの編集は頻繁には行われないことがありますが、ときどき起こることはありません。 「実」DataTable列(またはそれが呼び出されたもの)と「通常の」派生列を率直に混合することは、傷つく世界のように聞こえるので、Excelでは後からではなくSQLで計算を行うことは珍しいことではありません。しかし、私はこれらの計算を間違えているので、私はそれらを更新したいと思います。これはSQLを更新することを意味します。

Excel ODCファイルから接続文字列を読み込みますが、幸いなことに、その中のSQLクエリを無視して、代わりにXLSファイルに格納します。企業内でODCファイルに保存されている分析クエリや何かを持っていて、会社全体のすべてのコンピュータで手動で変更を行うことがわかっている場合にのみ、恐怖を想像することができます。

私は何か間違っているのですか、これは意図された動作ですか? Excelに、ローカルバージョンを常に使用するのではなく、ODCファイルから実際にSQLを使用する方法はありますか?

答えて

1

いくつかのこと:

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. 
関連する問題