5

ここにクロス投稿:

http://www.vbforums.com/showthread.php?696163-Use-variable-to-append-field-parameter&p=4264077#post4264077

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])

4

1 に答える 1

0

これは、VBForums からそのままカット アンド ペーストしたものです。これはコミュニティ ウィキであり、この質問を「回答なし」から削除することのみを目的としています。必要に応じて削除または修正することができます。


FROM: http://www.vbforums.com/showthread.php?696163-Use-variable-to-append-field-parameter&p=4264077#post4264077

BY: si_the_geek

パラメータを使用して値を設定することしかできません。パラメータを使用して他のことを行うことはできません (フィールド/テーブル名、関数など)。

クエリの他の部分を変更する場合は、他の方法 (文字列の作成など) を使用する必要があります。投稿の最後の例では、それをクエリ文字列に追加し、パラメーターを介して値を追加する必要があります。

于 2012-11-01T12:32:34.230 に答える