2

ランタイムエラーデータが変更されました。

サブフォームの1つで苦労しています。以前は文句なしで動作していましたが、今では少し冗長になることにしたと思います。このフォームには、さまざまなチェックボックスオプションがあるサブフォームがあります。ユーザーがチェックボックスオプションを入力してメインフォームに戻るたびに、実行される終了時イベントがあります。さまざまなフォームのテキストボックスを組み合わせて、その値をメインフォームのテキストボックスに入力します。

 var1 = [Form1]![Textbox].Value 
 var2 = [Form2]![Textbox].Value 
 var3 = [Form3]![Textbox].Value 

 Me.[TextBox].Value = var1 & var2 & var3

何らかの理由でサブフォームを終了すると、ランタイムエラーが発生します。

パターンは明らかではありません。

  1. エラーメッセージを受信せずに、サブフォームからメインフォームに変更を加えることなくナビゲートできます。
  2. サブフォームに移動して変更を加え、サブフォームを終了すると、テキストボックスは文句なしに更新されますが、サブフォームに戻って変更を加えずにメインフォームに戻ると、次のようになります。ランタイムエラー
  3. 同様に、動作1が真であることを確認した後、サブフォームに戻って何かを変更すると、何かが戻ってきますが、サブフォームに戻って追加の変更を行おうとすると、苦情が出ます。(on enterイベントでサブフォームを更新することでこれを修正できました)

ランタイムエラーを修正できませんが...:(

4

1 に答える 1

1

これは解決策のない多くの人々にとっての問題だと思います。これが私の回避策でした。

私の観察によると、Textbox.valueが更新されていたフォームは、サブフォームの入力時または終了時にサイレントに更新されるため、テキストボックスを更新する終了時のアクションが発生すると、メインフォームが更新されたと文句を言います。そのフォームが更新されると、ユーザーには表示されないと結論付けます。

したがって、私の回避策は、新しいデータをロードして変更するために、サブフォームの出口でメインフォームを再クエリすることです。

警告!!再クエリはデフォルトで最初のレコードに戻るため、間違ったレコードのテキストボックスを変更する可能性があります。したがって、再クエリプロセスの一部として、このハックを選択した場合は、現在開いているレコードをブックマークして再クエリし、そのレコードを再度フェッチする必要があります。目的の効果を実現するために、このWebページのコードを使用しました。したがって、7878を一周します。

再クエリして記録を残す: http ://www.baldyweb.com/Requery.htm

于 2012-03-01T18:04:48.570 に答える