0

updateステートメントでどの列を更新するかを条件付きで決定することはまったく可能ですか?

レコードごとに 30 列の 1 つを更新する更新クエリを実行しようとしていますが、レコードの前のフィールドが既に入力されている場合のみです。基本的に、プロジェクトのテーブルと寄付者のテーブルがあります。各プロジェクトには 1 ~ 4 人のドナーがいますが、各ドナーは 1 ~ 25 のプロジェクトに資金を提供しています。プロジェクトページには寄付者が記入されているため、寄付者が資金を提供したプロジェクトを自動的に記入しようとしています。これまでのところ、私の試みは次のとおりです。(私が更新しているクエリは、ドナー テーブルのドナーがプロジェクト テーブルのドナー 1 またはドナー 2 またはドナー 3 またはドナー 4 と等しい場合にフィールドを選択するクエリです):

UPDATE [Appropriate Query] 
SET (iif([Project Funded 1 title] is null OR [project funded 1 title] <>   
[Project title], [project funded 1 title], iif([project funded 2 title]
is null OR [project funded 1 title] <> [Project title], [project funded 2 title])) 
= Iif([Project title] is null, [cc number], [project title]) 

(私はこのネストされたループの最初の SET 部分を 30 列ループしています。コードの 2 番目の部分は、「プロジェクト タイトル」フィールドの一部が空であるためです。フィールドに識別子が必要です)

これまでのところ、エラーメッセージしか表示されていません。上記のように、内容に応じて更新する列を決定することはまったく可能ですか? iif ステートメントが醜いことは知っていますが、JET SQL (アクセス言語) では case ステートメントが許可されていないことがわかります。

どうもありがとう、そして私の無知を許してください。

4

1 に答える 1