2016-10-04 6 views
0

Excelで報告しようとしているOracleデータベースから、さまざまなテーブルとビューを使用して、複雑なクエリを(60+以上)持っています。Oracle SQLからExcelへの統合

そうすることで最も効率的な方法は何でしょうか?クエリ結果はまた、出力を適切に配置するために、いくつかの事前に割り当てられた値と比較する必要があります。また、Excelファイルには、必要に応じてファイルを更新して更新するためのVBAマクロセットアップが必要です。

Microsoftのクエリを使用してExcelの該当するメソッドが効率的ではありません。他の選択肢は何ですか?私は研究を試みましたが、非常に自動化されて滑らかなものは見つかりませんでした。

+0

VBAを使用して更新と更新を行う必要があるため、質問には既に回答しています。 VBAを使用して、Oracleに接続してデータを取得します。 – Prisoner

+0

私はあなたがVBAで書いたものがMS Queryよりも効率的であると信じるのは難しいと感じます。 VBAはMS Queryと同じように、常にデータベースから宣言、実行、フェッチする必要があります。今度は、出力のレンダリングについて心配する必要があります。 ExcelとMS Queryが効率的でないのはなぜですか?私は批判していない - 私は本当に理解したい。 – Hambone

答えて

0

Excel 2013以降では、MSクエリを1回だけ使用してVBAを使用する必要がなくなります。

フレッシュなシートでは、MSクエリを使用して、非常に単純なテーブルの1つを作成し、結果をExcelテーブルに戻すことができます。これは、あなたのために完了した接続文字列のようなすべてのトリッキーなものをExcelでリフレッシュ可能なテーブルを取得します。このタブをテンプレートとして使用できるようになりました。

Ctrlキーを押したままタブ全体をコピーして、次のタブ位置にドロップします。これには、別個のOracle接続を持つ別個の表を作成する利点があります。新しいタブの場合は、データリボンで[プロパティ]ボタンをクリックして[外部データのプロパティ]ダイアログを開き、接続名の右側にある[接続プロパティ]ボタンをクリックし、[定義]タブをクリックします。複雑なクエリの[コマンドテキスト]ボックスに貼り付け、[OK]を2回クリックすると、実際のクエリがExcelに読み込まれます。

テンプレートタブのコピーとクエリの貼り付けを59回以上繰り返してください。データリボンで[すべて更新]を使用すると、すべてを一度に更新できます。必要に応じて、他のExcel式/書式を追加します。いつものように、キーボードショートカットは通常、クリックよりも速いです。

必須ではなく、おそらく上記よりも時間がかかりますが、各接続名、タブ、およびExcelテーブルに適切な名前を付ける必要があります。これらのそれぞれに同じものを使用できます(文字の制限が許されます)ので、SQLをペーストしたら、接続名を修正してコピーして、タブ名とテーブル名に貼り付けることができます。

これらのクエリーテーブルを設定すると、シートを開いたときに自動的に更新されます。また、特に高価なVLOOKUPの数を減らした場合は、Oracleでの作業の多くを行い、問合せ表の数を減らすことを検討してください。また、接続プロパティの定義を[マイデータソース]ディレクトリにエクスポートし、データリボンの[既存の接続]ボタンから再利用して、MSクエリを再度使用する必要がない場合もあります。

上記のすべてはVBAで行うことができますが、コードを記述してデバッグし、SQLや名前のようなパラメータに貼り付けたときには、上記を行うのがより簡単で簡単になると思います。

関連する問題