1

ms accessには、サブフォームもあるフォームがあります。サブテーブル/サブフォームに1対多の関係でレコードが関連付けられている場合、プログラムでメインフォームのRecordsetTypeをスナップショットに変更したいと思いました。これを行うためにいくつかのvbaコードを作成しましたが、非常に奇妙な動作を経験していました。

その後、RecordsetTypeを変更すると、フォームが更新されて最初のレコードに戻るためであることがわかりました。これにより、OnCurrentイベントと関連するコードがサブフォームとメインフォームの両方で2回発生します。DoCmd.SearchForRecordを使用して元のレコードに戻ることを考えていましたが、イベントが2回目に発生したときに、DoCmd.SearchForRecordのWHERE条件がオーバーライドされるため、機能しないことにすぐに気付きました。とにかく、それはすべてとても非効率的であるように見えました。

私がやろうとしていることをする他の方法はありますか?フォームのコントロールを「無効」に設定したくありません。

4

1 に答える 1

1

MS Accessには、AllowEdits、AllowDeletions、AllowAdditionsなどの適切なフォームプロパティがあります。これらは個別に設定することも、一緒に設定することもできます。この場合、AllowAdditionをYesに設定し、AllowEditsをNoに設定する必要があるようです。

フォームのプロパティ

于 2013-02-19T21:01:10.750 に答える