- ベストアンサー
ACCESS:条件付き書式でDLOOKUP関数
- ACCESSで、フォームに該当の数値が入力されると注目!の意味でその数値を赤太字で表示させたいです。
- 条件付き書式がいいと分かったので、KEY_INフォームのPO_NOに設定して、DLookUp関数を使用しましたが、何の数字でも反応してしまいました。
- DLookUp関数に様々な書式を試しましたが、解決できませんでした。お助けいただけないでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
当方アクセス2007ですが、先程の回答の通りできちんと反映されています。 セキュリティの警告は恐らくマクロやVBA関連で出てくるものかと思うので 条件付き書式等のみではあまり関係ないとは思うのですが・・・(違ったらごめんなさい) 双方のデータ型が「テキスト型」なのであれば DCount("*","BULLETIN_BOARD","[CHECK_PO]='" & [PO_NO] & "'")>0 で動作するかとは思うのですが dcountの最初の項目は「"*"」になっていますか? (あるいは "[CHECK_PO]" 等、BULLETIN_BOARDのテーブル内に存在するフィールド名であれば何を指定しても大丈夫なはずですが、"[PO_NO]"というフィールドがBULLETIN_BOARDに存在しない場合に指定してもdcountで「0」が返され、「>0」が成り立たないので条件付き書式は反応しません) dcountは質問者様の仰る通り、指定した条件に一致するレコードの「数」を返す関数です。 入力したPO_NOフィールドの値に一致するレコードの数値が返ってきますので、その数値が「1」以上であれば(>0の部分)条件付き書式が適用され、一致がない場合は0が返りますので通常の書式になります。 dlookupで出来るかは私の知識内ではどうか分かりませんが・・・
その他の回答 (1)
- oka_me
- ベストアンサー率86% (26/30)
dcountではどうでしょうか。。 ★「フィールドの値」のプルダウンを「式」に変更 DCount("*","BULLETIN_BOARD","[CHECK_PO]='" & [PO_NO] & "'")>0 ※文字列の場合 DCount("*","BULLETIN_BOARD","[CHECK_PO]=" & [PO_NO])>0 ※数値の場合
お礼
早速のご回答ありがとうございます。 教わった方法で式に変更して試してみましたが、どうも上手くいきません。 MAIN_TABLEとBULLETIN_BOARDのデータ型がバラバラだったのでテキスト型に合わせてやってみたんですが、う~ん、反応しません。 DCount("[PO_NO]","BULLETIN_BOARD","[CHECK_PO]='"&[PO_NO]&"'")>0 ともしてみましたがダメでした。 コンテンツの有効化が原因でしょうか?相性が悪いとか、、、? ちなみに、最初ACCESS2003で作ったものを2007に変え、今は2010で使っています。 しかし、DCount関数になるのはなぜですか?数えた数が出てくるのだと思っていました。
お礼
全く新規のファイルを作って試してみると、回答者様の仰るとおりできました! しかし、当該のファイルに適用しようとしてもできません。("*"もその通り打ちながら、、) 他の箇所でマクロは使っていますが、この条件付き書式とはやはり関係ないですよね。 ですがDCount関数のしくみはよく分かりました。 ありがとうございます。 もしかすると[PO_NO}のコントロールに何か制限がかかっているとかプロパティを見たら原因があるかもしれませんね。やってみます。 とにかく、ありがとうございました!!