いつもお世話になります。
コンボボックスの入力時に、
フォーカス取得後のイベントプロシージャで
DropDown
を記述していますが、一瞬表示されて、すぐに消えてしまいます。
常時使用している2つの帳票でこの現象が起きます。
消えた後、手作業で再度、コンボボックスにカーソルを移動させると、
正常にドロップダウンされます。また、
2行目以降はその様な現象は起きません。
それならと、SetFoucus で他に移動して再度、コンボボックスに移動しても
同様に、一瞬、ドロップダウンされて消えてしまいます。
2003 から 2016 に移行しても、症状は同じでした。
自分で使用するだけですので、
誤魔化しながら15年以上使っていますが、自力で解決できずにいます。
解決策を、ご教授頂きたいです。
その仕様は私もよく使いますが、そのような現象は経験ないですね。
新規にフォームを作成して、同様の設定をしても現象が再現しますか。
現状のコンボボックスの設定、フォーカス取得時のコードを提示してもらえませんか。
以下の2つがイベントプロシージャのコードです。
そのままを、コピペしました。
帳票で以下のコードでは正常にドロップダウンするのです。
Private Sub cbo仕入先ID_GotFocus()
Me!cbo仕入先ID.Dropdown
End Sub
入力後、サブフォームで以下のコードの時は、一瞬だけドロップダウンして、
すぐ、消えます。しかし、2行目からは正常にドロップダウンするのです。
Private Sub cbo商品ID_GotFocus()
Me.cbo商品ID.Dropdown
End Sub
[cbo商品ID]の値集合ソースは
SELECT T商品マスタ.商品ID, T商品マスタ.商品名, T商品マスタ.仕入先ID
FROM T商品マスタ
WHERE (((T商品マスタ.仕入先ID)=[parent]![cbo仕入先ID]))
ORDER BY T商品マスタ.商品名;
です。
以下は、サブフォームを使用せず、表形式のフォームなのですが、
先頭行でのみ、一瞬だけドロップダウンして、すぐ消えます。
これも同様に2行目からは正常にドロップダウンします。
Private Sub cbo食材ID_GotFocus()
Me.cbo食材ID.Dropdown
End Sub
[cbo食材ID]の値集合ソースは
SELECT T食材.食材名, T食材分類.食材分類名, Format([㌍],"@@@") AS カロリー, T食材.食材ID, [×Q食材1].食材名のカウント
FROM (×Q食材1 RIGHT JOIN T食材 ON [×Q食材1].食材ID = T食材.食材ID) INNER JOIN T食材分類 ON T食材.食材分類ID = T食材分類.食材分類ID
ORDER BY [×Q食材1].食材名のカウント DESC , T食材.食材名;
です。
今まで、コピーしたり、新規にも何度となく試したのですが
だめでした。私ではお手上げです。
どちらも2行目以降は正常にドロップダウンするのです。
他には、特に変わった設定はしてないと思います。
どちらもフォーカス取得後以外にイベントはありません。
hatenaさんが未経験なことか、私に起こるとはなんとも不思議です。
フォーカス取得後イベント(GotFocus)をフォーカス取得時イベント(Enter)に変更したらどうなりますか。
私の場合は、Enter を使っています。
2つとも
フォーカス取得時イベント(Enter)
に変更してみましたが、同じでした。
そして、2行目からは正常にドロップダウンします。
こちらで現象を再現できないので、実際のファイルを見ないと原因の特定は難しいですね。
症状の出るAccessファイルを送信してもらえたら原因が特定できるかもしれません。
よろしければ右カラムの下にあるファイル送信フォームから送信もらえますか。
わかりました。
ただ、仕入先等の情報がありますので
今日中には、データを作って送信します。
仕入データのあるものは、控えました。
もう一つの、日々の食事データを入力しているものを
送信しました。よろしくお願いします。
送信ファイル、拝見しました。
開いたときに最初にフォーカスがくるのがコンボボックスのとき、症状がでるようです。
txt時刻の「タブストップ」を「はい」にすると開いたときこれに最初にフォーカスがきますので、その後、コンボボックスにフォーカスを移動するようにすればいいでしょう。
ただし、開く時イベントでフォーカス移動しても同じ症状になるので、タイマーイベントを使って少し遅らせてフォーカス移動させるようにすれば、コンボボックスのリストを開いた状態にできます。
txt時刻
タブストップ いいえ
フォーム
タイマー時 [イベント プロシージャ]
タイマー間隔 0
「開く時」のイベントプロシージャのコードは「読み込み時」(Form_Load)のイベントプロシージャに移動して、下記のように修正してください。
修正済みファイルは下記からダウンロードできます。
修正ファイル
ひとつ変化がありました。
なんと、Enter に変更した仕入伝票のサブフォームの明細入力が
一行目からドロップダウンしました。
指摘された時は、ドロップダウンしなかったのですが、
今、新しいデータを入力すると、ドロップダウンしました。
送信した 食事明細入力.accdb はドロップダウンしないことは
一度確認しましたが、なんだか訳が分かりません。
すみません。
今、新しい仕入データを入力すると
やはり、ドロップダウンしませんでした。
開いた時最初にフォーカスするのがコンボボックスの時に症状がでるとの指摘が
的を射ていました。
私は、まったく気づきませんでした。
なぜかは、分かりませんが、問題は解決しました。
ありがとうございました。
本筋から外れるかもしれませんが、
もう一つの帳票は、コンボボックスにフォーカスする前に
日付を入力するようになっているため、そこでは正常にドロップダウンして、
サブフォームを入力する場合は、最初にコンボボックスにフォーカスします。
一つの入力フォームしか、見せていないのに
なぜ、開いた時最初にフォーカスするのがコンボボックスの時に症状がでると
判断できたのか、知りたいです。
すみません。
開いた時に最初にフォーカスするのがコンボボックスで
その時、症状がでるのは、分かっていることでした。
なにぶん、長期間にわたり、解決しなかった事が
一瞬で解決してしまった事に、戸惑っています。