• ベストアンサー

Access2000 でのIIFを使用したデータ更新処理

こんにちは。答えていただけるとありがたいです。。。 Access2000 でのIIFを使用したデータ更新処理ができなくて困っています。 クエリで、退職者(テキスト形式)フィールドに 入力フォーム(チェックボックス)で入力した値(-1、0)を、 "-1"なら"退職"、"0"なら""空と更新したいのですが、 選択クエリで中身を見てみると、すべてのレコードが"0"と入ってしまいます。 書いている式は 式1: IIf([退職者]="-1",[退職者]="退職",[退職者]="") です。 以上、よろしくおねがいします。

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

  • ベストアンサー
noname#79209
noname#79209
回答No.2

この式自体がおかしいですね。 まず、 式1: IIf([退職者]="-1",[退職者]="退職",[退職者]="") チェックするフィールド、置き換えるフィールドが同じフィールドになっています。 また「"-1"」は文字列として検索していることになってしまいます。 IIf([退職ID]=-1 あるいは IIf([退職ID]=True とすべきです。 「式1」とあるので、クエリだと思われますが、 更新クエリで行うなら、(復職はないとして) 退職者フィールドの「「レコードの更新」行に「"退職"」として、 退職IDの抽出条件行に「=True」とすべきです。 また、もし「退職者」フィールドが「-1」「0」が置かれていて、 選択クエリで表示した時に、「-1」を「退職」と表示したいだけなら、 式1: IIf([退職者]=-1,"退職","") とします。 クエリで上での表示フィールド名を指定したいなら、 退・在職: IIf([退職者]=-1,"退職","") などとします。

hana_is
質問者

お礼

ご返答ありがとうございます。 同じフィールドで置き換えは、できないんですね。 [退職者]のチェックボックスは後々"退職"とテキストを入力しようと考え、Yes/No型、数値型にはしませんでした。 教えていただいたクエリで表示できました。ありがとうございます。 また、更新クエリは、"-1"の場合(=退職)"0"の場合(="")←在籍の場合と、同じフィールドを見ているため、更新ができませんでした。

その他の回答 (1)

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.1

式1: IIf([退職者]="-1",[退職者]="退職",[退職者]=Null) ではどうでしょうか?

hana_is
質問者

補足

お返事ありがとうございます。 Null、IsNullともにやってみましたが、 検索結果はすべてのレコードが0のままでした。

関連するQ&A