ここにクロス投稿:
ADO を使用して MS Access から Excel にデータを取得しています。クエリの SELECT 部分に Iif ステートメントを追加したいと考えています。私の SQL 文字列はテキスト ファイルに保存され、すべてのパラメーターは ADO 経由で追加されます。
WHERE 句にパラメーターを追加する方法を知っており、次のように SELECT ステートメントにパラメーターを追加することもできます。
SELECT BA, Iif(QA=[@somestring],[@somestring2], [@somestring3])
FROM myData
WHERE BA = 'some person'
しかし、私が達成しようとしているのは、プレースホルダー [@somestring] を次のような可変長の Iif ステートメントに変換することです。
SELECT BA, [@somestring]
そして、プレースホルダーは、関数を使用して作成した文字列に変換されます。
Iif(QA='Jon Doe', 'Jon', Iif(QA='Jane Doe', 'Jane', 'Nobody')).
今のところ、取得した結果は、フィールド全体に入力するパラメーターに渡すリテラル文字列です。したがって、Iif ステートメントは、SQL によって評価されるのではなく、文字どおりレコードごとに書き出されます。
私がやろうとしていることは可能ですか、それとも SQL は最初のコマンドで事前定義された Iif ステートメントのフィールドを必要としますか?
すなわち、Iif(QA=[@somestring], [@somestring2], [@somestring3])