Access (一般機能)

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

 
(Windows 10 Pro : Microsoft 365)
コンボボックスの値が見えなくなる
投稿日時: 22/06/26 08:46:32
投稿者: うみねこ@かもめ

サブフォームにあるコンボボックスの値が見えなくなるのですが、解決方法が思いつきません。
 
Gyazoでスクショしたものを載せておきます。
https://gyazo.com/6e50101be2e0e9fc46fe84a98be2acb8
https://gyazo.com/4224be314befde0018e3e6832ea605de
サブフォーム用クエリです↓
https://gyazo.com/f0885b5915589edb3020f5a41b2f1726
思い当たることとしてはID仕店フィールドの値によってID品目の値が絞り込まれるように、サブフォーム内で使うクエリとは異なる値集合ソースをID品目には当てていること、また別のID仕店を選択したときでもセットされたクエリが切り替われるようにID仕店フィールドのコンボボックスにはクリック時にリクエリをするよう設定してあります。
 
この壁を乗り越えられればとは思っています。
これ以上は自力では無理そうです、どうぞ助言をお願いいたします。

回答
投稿日時: 22/06/26 14:13:22
投稿者: hatena
投稿者のウェブサイトに移動

コンボボックスの連結列と表示列が異なっていて、リストを制限するとそのような現象が発生しますね。
 
解決策としては、
まず、フォームのレコードソースのクエリに、コンボボックスの値集合ソースのテーブル(品目_仕入)を追加して、キーフィールド(品目ID)でリンクします。コンボボックスの表示列(品目_仕入)を追加します。
 
フォームのコンボボックスに重なるようにテキストボックスを配置して下記のように設定します。
コントロールソース 品目_仕入
タブストップ いいえ
 
フォーカス取得時のイベントプロシージャ
 

Me.コンボボックス名.SetFocus

 
コンボボックス名の実際の名前に。
 
テキストボックスは、コンボボックスの▼ボタン以外の入力エリアと同じサイズにします。
(▼ボタンまで隠すようにしてもOKです。)
 
テキストボックスには常に、品目_仕入 の値が表示されてます。
 
コンボボックスにフォーカス移動すると、コンボボックスが前面に浮き上がってきます。
これで、コンボボックスで入力や選択ができます。
フォーカスが外れるとテキストボックスの裏に隠れます。

投稿日時: 22/06/30 21:48:35
投稿者: うみねこ@かもめ

できました、ありがとうございます。
 
それでも理解してから先、紆余曲折ありまして、一筋縄ではいかなかったです。
リレーションで行き詰ったり、命名規則がテキトーでハマってみたり、……そんなこんなで返信が遅れてしまいました。
イラついていたのではありますが、
モシカシタラなんて思いは幽かながらありました、でもそんなものは妄想でそんなことはあるはずはない、SFチックなこんな方法を考え付くのは、なんて……
データシート方式しか使ってこなかったのを帳票フォームの横並びで使うなんて発想、できません! きっぱり!
一人だけでこの方法思いつきました? 
そうならばそれで素晴らしい化学反応ですよね。
そうではないのならこれまた面白い融合です。
どちらが正しいとかいうことではないのです、ただお礼の言葉だけでは物足りないものでしたから、ただ……ありがとうございました