タイトル通り、不思議な現象に遭遇。2 つのサブフォームを含むフォームがあります。両方のサブフォームに、関連するサブフォームの再クエリをトリガーするボタンがあります。フォームをロードした後、すぐにこのボタンをクリックすると (フォームを再クエリします)、OnCurrent イベントの現在のレコードの主キーの値を変数に保存しようとすると、「3021: 現在のレコードがありません」というエラーが表示されます。奇妙なことに、デバッガーでは、関連する値は次のようになります。
Form.CurrentRecord=1
Form.RecordSet.Absoluteposition=-1
Form.RecordSet.RecordCount=14
Form.RecordSet.EOF=False
Form.RecordSet.BOF=False
また、フォームが読み込まれると、読み込みイベントでも正しく機能し、最初のレコードに含まれる主キーである主キー値を保存できることに注意してください。
Form_Load と私の間のどこかで、その再クエリ ボタンをクリックすると、フォームのステータスが同期しなくなります。私はつい最近 Access 2003 から 2007 に切り替えましたが、覚えている限り、このエラーは以前には発生していませんでした (ただし、ロード後にこのボタンをクリックしなかっただけかもしれません)。
今のところ回避策がありますが、これがどのように発生するかを本当に理解したいと思います。