web-dev-qa-db-ja.com

SQLサーバーへの外部接続のクエリパラメーター

これを正確に実行したい: http://dailydoseofexcel.com/archives/2004/12/13/parameters-in-Excel-external-data-queries/ しかし、Excelで実行したい2010と、MS Accessの代わりにSQL Serverをクエリしています。出来ますか?

そのリンクから正確に何を求めているかを詳しく説明するには、ワークシートのセルを参照するクエリパラメータを用意します。現在、VBAとセル変更トリガーイベントを使用しています。より簡単な方法はありますか?


注:SQL Serverがインストールされていないコンピュータでスプレッドシートを機能させる場合は、承認された回答でメソッドを使用しているすべての人、それからあなたはこれが役立つかもしれません: https://dba.stackexchange.com/a/109221/46815

6
Dan

だから私はついにそれを理解しました。これが私のステップです。

  1. 新しいExcelワークシートを開く(Excel 2010を使用しています)
  2. リボンの[データ]タブをクリックします
  3. [他のソースから]の下にあるドープをクリックします
  4. 「Microsoft Queryから」を選択します
  5. データソースを選択してください
  6. クエリボックスの列にデータを入力するテーブルを選択します。後でオーバーライドするため、これは問題ではありません。[次へ]をクリックします。
  7. [完了]ボタンが表示されるまで次をクリックし、[完了]をクリックします
  8. 「プロパティ...」をクリックします
  9. 「定義」タブをクリックします
  10. 接続タイプには「データベースクエリ」と表示されている必要があります。そうであれば、パラメータを追加できます。そうでない場合、パラメータを追加できないようです。
  11. SQLデータベースへのアクセスに使用するクエリを使用してコマンドテキストを更新します-他のデータベースで試したことはありませんが、他のデータベースでは機能するはずです。
  12. パラメータを作成するには、単純に? where句内。例えばselect * from table1 where col1 =?

パラメータの追加にはいくつかの問題があります。これらは最後のwhere句でのみ機能します。つまり、サブクエリ、ピボット、CTEなどを使用している場合、それらにパラメータを追加できません。最後のwhere句の最後でのみ

  1. [OK]を2回クリックします-パラメータを尋ねるポップアップが表示されます

  2. 何でも記入してください-これは後で変更します

  3. 結果の任意の場所をクリックし、リボンの[データ]タブで[プロパティ]をクリックします

  4. 小さな手のプロパティアイコンをクリックします

  5. 定義タブをクリックします

  6. 「パラメータ...」ボタンがクリック可能であることがわかります。それをクリックして、オプションを[値のプロンプト]から[次のセルから値を取得]に変更します。

誰かがより速く、より簡単な方法を見つけた場合-私はすべて耳に聞こえますが、これは一貫して機能し、非常に複雑なクエリを使用します。私たちにとって、それは正しい解決策です

10
Peter Munnings