役に立ちそうもないTips移転版

俺得なTipsを書き連ねるだけのブログ。

Access: ビットフィールドを使いたい

ビットフィールド、と言っても機械にしてみればただの数値であるからして、使うだけなら特に問題はない。
しかしAccessの場合ちょっくら落とし穴。Jet SQLはビット演算をサポートしていないので、SQL内でビットのON/OFFを判定しようとするとAndやOrではNG(両オペランドともBooleanに変換の上演算される)なため難儀。
Access内部で完結する話なら同じDBにビット演算用のユーザ定義関数を作るという手もあるが、余所から叩くとなるとそうもいかない。
ここはこちらも「結局数値」というところへ立ち戻って、単一のビットが立ってるかどうかを知りたければ
「ひとつ上の桁の数でMod取って、目的の桁の数以上ならおk」
とかやりゃよろしい。(たとえばLSBから2ビット目のON/OFFは「(value Mod 4) >= 2」で分かる)