0

ここ数日間、この問題の原因を特定するのに苦労してきました。この問題の原因をインターネットで検索しましたが、あまり役に立ちませんでした。

これは、ユーザーが SQL Server でホストされているデータベースにクライアント情報を入力するためのフロント エンド UI として Access を使用するプログラムです。

相互作用は次のようになります。

  • ユーザーがメイン フォームのクライアント リストをクリックする
  • アカウントの一覧がメインフォームに表示されます
  • ユーザーがアカウントをクリック
  • 製品のリストは、表形式のサブフォームに表示されます (更新/新しい製品の追加用)
  • ユーザーが製品の 1 つを選択します
  • 対応する月間商品値は、別のサブフォームに表示されます (商品リスト サブフォームの下ではありません)。

メイン フォームが最初に読み込まれるとき、月次製品値フィルター値は既定で 0 です。いずれかの製品が選択されたときに、フィルターを動的に更新する必要があります。これは、製品フォームの Form_Current イベントの下で行われました。

私が理解できないのは、フィルターがデフォルトの状態で動かなくなっているようです。Debug.Print ステートメントを使用して、月次製品値フォームの最新のフィルター値を確認すると、フィルターの正しい製品 ID が表示されます。しかし、UI ではまったく更新されません。

さらに奇妙なのは、vbaコードに変更を加えたときに機能し(つまり、月ごとの値がリストされます)(フィルターとは関係ない場合があります)、アプリケーションモードのときに保存します。例:

.filter = "prod_id = " & iProdID

.filter = "[prod_id] = " & iProdID

しかし、その後、デザイン モードに変更して、この問題に関係のない変更を開始すると、再びアプリケーション モードにすると機能しなくなりました。動作が非常に予測できないため、どうすればよいかわかりません。フォームを削除して再度作成しても、同じように動作します。

他のサブフォームの VBA のファイラーで同じ方法を使用していますが、正しく動作しています。私が見落としていたことについてのフィードバックを期待しています!

ありがとう!キアット

4

1 に答える 1

0

私は今それを働かせました。製品値にフィルタを割り当てる元の方法は、フィルタ値をForm_ProductVals製品フォームの ( Form_Products)Form_Currentイベントから製品値フォーム ( ) に直接割り当てることでした。それが結果の不一致の原因でした。

ここで、メインの Clients フォーム (Products および ProductVals サブフォームを含む) を介してフィルター値を割り当てるようにコードを変更しました。したがって、コードは次のように変更されました。

Form_ProductVals.Form.Filter = "prod_id = " & <new ID>

Form_Clients.ProductVals.Form.Filter = "prod_id = " & <new ID>

それはトリックを行います。違いの説明はありませんが。

于 2013-03-18T19:15:27.057 に答える