2016-12-05 6 views
0

Excelのセルの値に基づいてSQLデータベースからデータを返すようにMSクエリを作成しようとしています。私は実際にこれを成功させましたが、1行だけでした。私はそれを他の行にコピーダウンする方法を理解することはできません。ExcelからSQLデータベースを照会してください

次のように私は、接続を作成しました:SQL文がパラメータを含ん enter image description here

ていることに注意してください。パラメータは、特定のセルを指すように設定されています。 enter image description here

私は1行あたり1つの値を返すようにしていると思います。問題は、値を返す複数の行があることです。複数の行に対して1行あたりの値を返すにはどうすればよいですか?

[パラメータ]ダイアログボックスでセル参照を変更しようとしましたが、Excelテーブルが動的に拡張するように設計されているため、これは機能しません。

+0

私はあなたがVBAなしでExcelでこれを行うことはできないと思います。 VBAの使用はかなり簡単です。 ADODBを使用してサーバー接続を作成します。パラメータで範囲をループします。それぞれが特定のクエリを作成します。クエリを実行する。レコードセットの結果をセルにコピーします。多くのADODBチュートリアルをオンラインで見つけることができます。あなたのコードに特定の問題がある場合は、ここに投稿してください。私たちは喜んで助けてくれるでしょう。よろしく。 – nbayly

答えて

0

Excelデータ接続は、すべての接続が1つのSQLクエリしか持たないように動作します。だからあなたが探していることをするためには、多くのつながりが必要です。それは「ベストプラクティス」ではありません。 ただし、この状況を解決するには2つの方法があります。
1.すべてのデータを1つの接続にして、それに基づいてピボットテーブルを作成します。 VLOOKUP/INDEXを使用して、要求されたセルにデータを収集します。
2.データが大きすぎる場合は、VBAコードを使用して、指定したセルに基づいてより小さいクエリを作成し、最初のオプションの説明に従って処理を続行できます。

幸運。

関連する問題