Access。Yes/NO型で、YesをNoにするには更新クエリで簡単に変換できます。
<Access:Yes/No型>
次のようなテーブルがあります。このテーブルにある、DMというフィールドは、Yes/No型になっています。
一応、デザインビューでも確認しておきましょう。
このYes/No型は、
チェックマークがついているのがYesでついてないのがNoという、
Accessではお馴染みのフィールドですね。
そこで、今回は、このチェックマークがついているものを、
ついていないように。
チェックマークがついていないものを、ついてあるように。
というように、
YesとNoを入れ替えたいけれど、どうやったらいいの?
ということを紹介していきます。
データの件数が少なければ、
自力でクリックしていけばいいかもしれませんが、
データの件数が多くなれば当然、面倒ですし、
ミスをする可能性も高くなります。
文字を変える場合なら、Replace関数など、
様々な方法がありますが、それも大変です。
そこで、Abs関数を使うことで、簡単に入れ替えることが出来ます。
クエリデザインで、すべてのフィールドを使用します。
そして、「選択クエリ」ではデータを入れ替える必要がありますので、
今回は、「更新クエリ」を使用します。
では、「選択クエリ」を「更新クエリ」に替えていきましょう。
クエリツールのデザインタブにある、「更新クエリ」をクリックします。
これで、「更新クエリ」に替わりました。
すると、『レコードの更新』を使えるようになりますので、
この『レコードの更新』にAbs関数を使った数式を設定していきます。
設定する数式は、
Abs([DM])-1
とします。
では、実行ボタンをクリックしましょう。
更新するメッセージが表示されますので、
「はい」をクリックして、テーブルを確認してみましょう。
DMフィールドのYesとNoが入れ替わったのが確認できます。
このようにAbs関数を使うことでYesとNoを入れ替えることが出来るのですが、
どうして出来るのかという説明をしましょう。
まずAccessのルールで、
Yesというのは、Trueとも表記できますし、
数値だと、-1(マイナス1)というように設定されています。
Noというのは、Falseでも表記されて、
数値にすると、0(ゼロ)というように設定されています。
ちなみに、Excelは、YesがTRUEで1(プラス1)。
NoがFALSEで0(ゼロ)と設定されています。
Noは同じですが、YesはAccessとExcelで異なっていますので注意が必要です。
この-1(マイナス1)を0(ゼロ)に替えたいわけです。
そこで登場するのが、絶対値を算出することが出来る、Abs関数。
Yesは-1なので、絶対値は1ですね。
そこから1を減算してあげるので、結果は0(ゼロ)と算出されます。
つまり、Noに替わるわけですね。
同じように、Noは0ですから、絶対値も0なので、
1を減算すれば-1(マイナス1)。
つまりYesになるので、YesとNoを入れ替えることが出来るのです。