web-dev-qa-db-ja.com

Excel:SQLクエリのパラメーターとしてセル値を使用する

MS Excelを使用して、ODBC経由でMySQLデータベースからデータを取得しています。
SQLクエリを使用してデータを正常に取得しました。しかし今、私はそのクエリをパラメータ化したいです。

たとえば、このクエリの場合:

select name from user where id=1

たとえば、スプレッドシートのセルD4からid値を取得します。

それはクエリをパラメータ化する適切なアプローチですか?そして、どうすればそれができますか?

ありがとう。

33
GetFree

私はあなたと同じ問題を抱えていました、ノボビーは私を理解できますが、このようにして解決しました。

SELECT NAME, TELEFONE, DATA
FROM   [sheet1$a1:q633]
WHERE  NAME IN (SELECT * FROM  [sheet2$a1:a2])

他のシートにパラメーターを挿入する必要がある場合、SQLはその情報をデータベースのように考慮します。その後、情報を選択し、好きなパラメーターと比較できます。

34
Joaquim

Microsoftクエリを使用している場合、「?」を追加できます。あなたのクエリに...

id =?のユーザーから名前を選択します

excelに戻ると、セル/データ/などを要求する小さなウィンドウがポップアップ表示されます。

ポップアップウィンドウで、[常にこのセルをパラメーターとして使用する]を選択することもできます。データを更新するたびにそのセルを定義する必要はありません。これが最も簡単なオプションです。

12
pojomx
queryString = "SELECT name FROM user WHERE id=" & Worksheets("Sheet1").Range("D4").Value
4
barrowc

SQLは、MS SQLの構文にやや似ています。

SELECT * FROM [table$] WHERE *;

テーブル名は$記号で終了し、すべてを角かっこで囲むことが重要です。条件として任意の値を使用できますが、これまでのところExcelでは「SQLアポストロフィ」( ´)と呼ばれるものを使用できなかったため、1つのWordの列タイトルをお勧めします。

「Users」というテーブルにユーザーがリストされていて、idが「id」というタイトルの列にあり、名前が「Name」というタイトルの列にある場合、クエリは次のようになります。

SELECT Name FROM [Users$] WHERE id = 1;

お役に立てれば。

1
Kat Seiko