ms accessには、サブフォームもあるフォームがあります。サブテーブル/サブフォームに1対多の関係でレコードが関連付けられている場合、プログラムでメインフォームのRecordsetTypeをスナップショットに変更したいと思いました。これを行うためにいくつかのvbaコードを作成しましたが、非常に奇妙な動作を経験していました。
その後、RecordsetTypeを変更すると、フォームが更新されて最初のレコードに戻るためであることがわかりました。これにより、OnCurrentイベントと関連するコードがサブフォームとメインフォームの両方で2回発生します。DoCmd.SearchForRecordを使用して元のレコードに戻ることを考えていましたが、イベントが2回目に発生したときに、DoCmd.SearchForRecordのWHERE条件がオーバーライドされるため、機能しないことにすぐに気付きました。とにかく、それはすべてとても非効率的であるように見えました。
私がやろうとしていることをする他の方法はありますか?フォームのコントロールを「無効」に設定したくありません。