|
>SELECT 社員ID, 社員名 FROM 社員マスタ WHERE 部署ID = Forms!フォームA!cmb部署
>と修正したらうまく行きました。フォームA上のコンボボックスの名前が「cmb
>部署」としているからではないかと考えています。
仰るとおりです。申し訳ないm(__)m
しかも、SELECT のスペル間違えているし...(鬱
>これらの結果を踏まえ、見積もり書に入力できるよう作成しているのですが、
>入力はできるのですが、新規レコードに今までと違う部署名を選択すると
>今までの担当者名が見えなくなってしまいます。
>(例えば、「営業1課 佐藤」を作成したレコードの次に、「営業2課 鈴木」を
>入力すると、「営業1課 佐藤」→「営業1課 」となってしまいます)。
>見積もり書のテーブルには「営業1課 佐藤」の記録は残っているので、フォーム
>上での表示の問題だと思うのですが、よい解決策はないものでしょうか?
この現象はコンボの値集合ソースの1列目以外をコンボに表示すると
起きます。
※この表示方法も私的には特殊と思っています。実際は数値型の社員IDに対して
テキスト型の社員名を表示しているわけですから...
cmb担当者に対してRequery行わなければ件の絞り込みはできませんし、行うと
この現象が起きることになります。
現状のままで回避する方法は私的には思いつきません。
1つは案としては
現在入力されているフォームのレコードソースはテーブル(テーブルAとします)と
なっていると思います。このレコードソースを以下のように変更して
SELECT テーブルA.*, 社員マスタ.社員名
FROM 社員マスタ RIGHT JOIN テーブルA ON 社員マスタ.社員ID=テーブルA.社員ID;
して、テーブルAの社員IDと結合した社員名を表示できるようにします。
cmb担当者のプロパティで
列幅を0.5cm;2.54cm
としてcmb担当者には「ID」を表示するようにします。
cmb担当者の隣にテキストボックスを配置し、コントロールソースを「社員名」に
します。このテキストボックスのプロパティの「使用可能」を「いいえ」として
「編集ロック」を「はい」にしておけば弄られることはないと思います。
如何でしょうか?
|
|