しばらくの間持っていたデータベースの1つに問題があり、それはやや厄介です。
ユーザーが各レコードの情報を入力してから、(各レコードの)[コミット]ボタンをクリックする必要がある、連続表示のフォームがあります。
そのレコードに入力された値に基づいて、「コミット」ボタンは最初に2つのテーブルのいずれかに情報を挿入し、次にフォームがクエリを実行している一時テーブルからレコードを削除します。
そのための擬似コードはここにあります:
IF x.checked && y > 70 then
db.execute "Insert into tblCompleted values (me.empID,'completed',me.y);
else
db.execute "insert into tblIncompleted values (me.empid, 'incomplete', 'me.y);
end if
db.execute "delete * from tblTemporary WHERE empid = me.empID"
'form.requery
'form.refresh
「レコードが削除されました」ランタイムエラーが発生することがあります。同じレコードに対して2回発生することもあります。ただし、すべての操作は機能します。ただし、完了すると、レコードには##DELETEDが表示されます。これを修正するために、コードの最後にForm.refreshおよびForm.requeryステートメントを配置します。これにより、## DELETEDレコードが削除されますが、「レコードが削除されました」というエラーが表示されることがよくあります。
「なぜ2つのテーブルを使用しているのか、これを1つのテーブルでモデル化できないのか」と言う前に、これは私が実際に行っていることの単純化されたバージョンです。
私の主な関心事は、この実行時エラーです。私はそれを捕まえて未処理のままにすることもできましたが、実際に修正してこのバグのあるフォームを整理したいと思います。何かご意見は?