MS Excelを使用して、ODBC経由でMySQLデータベースからデータを取得しています。
SQLクエリを使用してデータを正常に取得しました。しかし今、私はそのクエリをパラメータ化したいです。
。
たとえば、このクエリの場合:
select name from user where id=1
たとえば、スプレッドシートのセルD4からid値を取得します。
それはクエリをパラメータ化する適切なアプローチですか?そして、どうすればそれができますか?
ありがとう。
私はあなたと同じ問題を抱えていました、ノボビーは私を理解できますが、このようにして解決しました。
SELECT NAME, TELEFONE, DATA
FROM [sheet1$a1:q633]
WHERE NAME IN (SELECT * FROM [sheet2$a1:a2])
他のシートにパラメーターを挿入する必要がある場合、SQLはその情報をデータベースのように考慮します。その後、情報を選択し、好きなパラメーターと比較できます。
Microsoftクエリを使用している場合、「?」を追加できます。あなたのクエリに...
id =?のユーザーから名前を選択します
excelに戻ると、セル/データ/などを要求する小さなウィンドウがポップアップ表示されます。
ポップアップウィンドウで、[常にこのセルをパラメーターとして使用する]を選択することもできます。データを更新するたびにそのセルを定義する必要はありません。これが最も簡単なオプションです。
queryString = "SELECT name FROM user WHERE id=" & Worksheets("Sheet1").Range("D4").Value
SQLは、MS SQLの構文にやや似ています。
SELECT * FROM [table$] WHERE *;
テーブル名は$記号で終了し、すべてを角かっこで囲むことが重要です。条件として任意の値を使用できますが、これまでのところExcelでは「SQLアポストロフィ」( ´)と呼ばれるものを使用できなかったため、1つのWordの列タイトルをお勧めします。
「Users」というテーブルにユーザーがリストされていて、idが「id」というタイトルの列にあり、名前が「Name」というタイトルの列にある場合、クエリは次のようになります。
SELECT Name FROM [Users$] WHERE id = 1;
お役に立てれば。