ここ数日間、この問題の原因を特定するのに苦労してきました。この問題の原因をインターネットで検索しましたが、あまり役に立ちませんでした。
これは、ユーザーが SQL Server でホストされているデータベースにクライアント情報を入力するためのフロント エンド UI として Access を使用するプログラムです。
相互作用は次のようになります。
- ユーザーがメイン フォームのクライアント リストをクリックする
- アカウントの一覧がメインフォームに表示されます
- ユーザーがアカウントをクリック
- 製品のリストは、表形式のサブフォームに表示されます (更新/新しい製品の追加用)
- ユーザーが製品の 1 つを選択します
- 対応する月間商品値は、別のサブフォームに表示されます (商品リスト サブフォームの下ではありません)。
メイン フォームが最初に読み込まれるとき、月次製品値フィルター値は既定で 0 です。いずれかの製品が選択されたときに、フィルターを動的に更新する必要があります。これは、製品フォームの Form_Current イベントの下で行われました。
私が理解できないのは、フィルターがデフォルトの状態で動かなくなっているようです。Debug.Print ステートメントを使用して、月次製品値フォームの最新のフィルター値を確認すると、フィルターの正しい製品 ID が表示されます。しかし、UI ではまったく更新されません。
さらに奇妙なのは、vbaコードに変更を加えたときに機能し(つまり、月ごとの値がリストされます)(フィルターとは関係ない場合があります)、アプリケーションモードのときに保存します。例:
.filter = "prod_id = " & iProdID
に
.filter = "[prod_id] = " & iProdID
しかし、その後、デザイン モードに変更して、この問題に関係のない変更を開始すると、再びアプリケーション モードにすると機能しなくなりました。動作が非常に予測できないため、どうすればよいかわかりません。フォームを削除して再度作成しても、同じように動作します。
他のサブフォームの VBA のファイラーで同じ方法を使用していますが、正しく動作しています。私が見落としていたことについてのフィードバックを期待しています!
ありがとう!キアット