Access (一般機能)

Accessの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Home : Access 2016)
Accessフォームの条件付き書式で・・・
投稿日時: 21/05/06 09:06:47
投稿者: らっぱーー

お世話になります。
 
Accessのフォームで、
別のクエリで作成されたデータの1フィールドと一致されたものが入力された場合
フォームのその部分に「色をつける」ことをしたいと考えています。
 
書式ルールにDcount関数を用いて「クエリ内に1件以上あったら」と条件をつけたり
VBAを使ってみたりして試していますが、うまくいきません。
 
やはり定数条件でないと条件付き書式は発動しないのでしょうか?
もしくはVBA等を絡めれば可能なのでしょうか?
 
ご教示くださると幸いです。

回答
投稿日時: 21/05/06 10:30:48
投稿者: sk

引用:
Accessのフォームで、
別のクエリで作成されたデータの1フィールドと一致されたものが入力された場合
フォームのその部分に「色をつける」ことをしたいと考えています。

そのフィールドのデータ型は何なのでしょうか。
 
引用:
書式ルールにDcount関数を用いて「クエリ内に1件以上あったら」と条件をつけたり
VBAを使ってみたりして試していますが、うまくいきません。

実際に記述された式を明記されることをお奨めします。

投稿日時: 21/05/07 09:04:23
投稿者: らっぱーー

お世話になります。
 
データ型は「文字列型」になります。
 
書式ルールに
「DCount("部品番号","サブテーブル","部品番号='" & [過去テーブル]![図面番号] & "'")>0」
 
のように記載しました。
 
また、フォーム内「部品番号」のフォーカスが外れた時に
 
If DCount("[部品番号]", "[サブテーブル]", "[部品番号]='" & [過去テーブル]![部品番号] & "'") > 0 Then
  MsgBox "あった"
End If
 
とか書いてみましたが、こちらも引っかかりませんでした。

回答
投稿日時: 21/05/07 10:35:33
投稿者: sk

引用:
データ型は「文字列型」になります。

引用:
DCount("部品番号","サブテーブル","部品番号='" & [過去テーブル]![図面番号] & "'")>0

 
(テキストボックスがメインフォーム上にある場合)
-------------------------------------------------------------------------------
 
DCount("部品番号","サブテーブル","部品番号='" & [テキストボックス名] & "'")>0
 
-------------------------------------------------------------------------------
 
(テキストボックスがサブフォーム上にある場合)
-------------------------------------------------------------------------------
 
DCount("部品番号","サブテーブル","部品番号='" & [Forms]![メインフォーム名]![サブフォームコントロール名].Form![テキストボックス名] & "'")>0
 
-------------------------------------------------------------------------------
 
各フォーム/コントロールの名前は実際のものに合わせて適宜修正して下さい。

投稿日時: 21/05/07 13:39:59
投稿者: らっぱーー

 
 skさん、お忙しい中ありがとうございました。
 
 フォームの元となるテーブルと比較しなくてはいけないと勘違いして
 式を作ってしまっていました。
 
 無事に思った通りの動きが再現できました。
 大変助かりました!本当にありがとうございました!!