さて、レコード選択画面を作成してみるダメバージョンの記事ではコンボボックスで選択するテーブル項目にNullがはいっていると期待していたレコード選択ができませんでした。
そこで!!今回は違う方法でレコード選択してみましょう。
手順1,Nullが存在しているテーブルカラムは一度Nullチェックして空白文字にいったん置き換える。
手順2,空白文字に置き換えたら、クエリのLIKEで拾っていく。
こういう手筈です。なぜこうしたかというと、Nullだと文字数0だし検索にもヒットしないから。LIKEで拾ってこられない!!!
実装方法
手順1の実装
小分類にはNullが含まれています。そこで表示する商品マスターの小分類にはQueryの選択条件を入れず代わりに、NZ(小分類,”)でクエリにフィールドを新たに作ります。この新規フィールドは非表示にしておきこの追加したフィールドの選択条件を以下の様にします。
手順2の実装
Like IIf(Nz([Forms]![フォーム2]![cb小分類],”)=”,”*”,[Forms]![フォーム2]![cb小分類])で拾うってかんじです。
意味としては、NZ(小分類,”)でテーブルの小分類にNullがセットされていたら空文字にしておき
Like IIf(Nz([Forms]![フォーム2]![cb小分類],”)=”,”*”,[Forms]![フォーム2]![cb小分類])で
選択用のコンボボックスがNullだったら*で置き換えてからLIKEで拾っていく。
選択用のコンボボックスがNullでなければ、コンボボックスの内容でデータをLIKEで拾っていく。
という感じです。
商品説明1,商品説明2にもNullが含まれていますがこちらも同じ手順で対応可能です。
is Nullが商品説明1、商品説明2にセットされていますが、これは上記の対応ではないので
無視してください。
商品説明1,商品説明2がともにNullの場合のみ選択するチェックボックスを
機能させる場合は、チェックボックスの条件付けをおこなってあげて下のように設定すればOK
検索フォームでの見た目はこんな感じ
すべてのチェックボックスが機能しました。
コメント