• ベストアンサー

Access2002について

Access2002で次のようなデータがあり、 フィールドA |フィールドB | フィールドC --------------------------------------------  123    |  234   |  456    |  123   |   (1)  789    |  123   |   (1) フィールドBのデータが、フィールドAのデータの中に存在している時は、フィールドCに(1)と表示させる。 ・・・という処理をしたいのですが、どんな方法でやったらいいのでしょうか?レコード数は50万程あります。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • snoopy64
  • ベストアンサー率42% (337/793)
回答No.3

テーブル名:t1 フィールド名:f1,f2,f3 クエリ1名:q1 クエリ1内容:SELECT t1.f1 FROM t1; クエリ2名:q2 クエリ2内容:UPDATE t1 INNER JOIN q1 ON t1.f2 = q1.f1 SET t1.f3 = "A"; これでq2を実行したら、ちゃんとできました。 頑張ってください(^o^)丿

shizuponjp
質問者

お礼

おぉ!出来ました。出来ちゃいました。ありがとうございます。いわゆる更新クエリですよね。自分では全然かけません。本当に助かりました。ありがとうございますm(__)m

その他の回答 (2)

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.2

簡単な方法として フィールドAだけの抽出クエリを作りテーブルにそのクエリをテーブルの全てのレコードとクエリのレコードと同じ結合のリレーションを作ります。 クエリのレコードがNullでないものに(1)をふるようにすれば良いのではないでしょうか。

shizuponjp
質問者

補足

う~ん、似たような処理をしてみたんですが上手くいかないんですよね。 フィールドAとフィールドBでそれぞれクエリを作り、その2つのクエリでリレーション(フィールドAの全データとフィールドCの同じ結合フィールドのレコードだけを含める)を設定し、もう一つクエリを作ってデータを表示させて見るのですが、何か間違ってるのでしょうか?

  • honopy
  • ベストアンサー率0% (0/2)
回答No.1

クエリにて、フィールドCにあたる列に、 フィールドC:IIF(Nz([フィールドA])>=Nz([フィールドB]),"(1)",null) とすると、可能だと思います。お試し下さい。 ※Nz()はカッコ内のフィールドがNULL値の場合に0(ゼロ)に置換する関数です。 ※頭の「フィールドC:」はフィールド名を指定しております。

shizuponjp
質問者

補足

説明不足だったようですみません。データの大小は、決まっているわけではなく、文字で言うと フィールドA | フィールドB | フィールドC ---------------------------------------------    あ   |    い   |         う   |    あ   |   ★    え   |    お   |  --------------------------------------------- という感じです。 フィールドBのデータが、フィールドAのいずれかに存在している際に、フィールドCになにか値を入れるようにしたいと思っています。 どうぞよろしくお願い致します。

関連するQ&A