2008-08-29 25 views
1

私は次のような状況があります。サブフォーム(レコードは特定のキーを介してメインフォームのレコードにリンクされています)でAccessフォームを構築しました。サブフォームのレコードを削除しようとすると、「あなたと他のユーザーがデータを変更しようとしたため、アクセスが中止されました」というメッセージが表示されます。誰もがサブフォーム(およびフォームの背後にあるテーブルから、それぞれ、それらのレコードを削除する方法を知っていますか?Accessデータベースからのレコードの削除、削除中のエラー

答えて

1

現在現在のフォームを編集している場合、そのアクションは許可されません。レコードを編集するには、フィールド内を単にクリックするか、通常は「編集」しないと思われる他の単純なアクションをクリックするだけで、トリガーになることがあります。

これは通常、レコードを削除する前に、すべての編集を元に戻すためにrunCommand関数法を用いて、Accessで回避されています

DoCmd.RunCommand acCmdUndo 
0

はまた、あなたが持っている「行ロック機構」をご確認ください。私はAccessをしばらく使用していませんが、テーブルのプロパティでこれを使用することができることを覚えています。これらのプロパティにアクセスして、テーブルの左上隅の有名な「ドット」をクリックしてプロパティを表示できます。あなたがAccessを使っているなら、あなたは私が何を言っているのか知っています。

1

samjudsonが提案:

DoCmd.RunCommand acCmdUndo

をまた、コードが実行されるフォームに最後の編集を元に戻すには、Me.Undoを使用することができます。

または、My!MySubForm.Form.Undoは、サブフォームコントロールの名前が "MySubForm"であるサブフォームの最後に保存されていない編集を元に戻します。

Me!MyControl.Undoを使用して、特定のコントロールの最後の編集をキャンセルすることもできます。

"DoCmd.RunCommand acCmdUndo"は、現在選択されているオブジェクトに元に戻す操作を適用しますが、コントロールまたはフォームレベルで適用するかどうかはわかりません。私が提案したコマンドを使って、元に戻すものを完全に曖昧にする。

[元に戻す]は、コントロールのAfterUpdateイベントが発生した後、またはAfterUpdateイベントが発生した後にフォームへの編集を元に戻しません(つまり、データが元のデータテーブルに保存されています)。 )。

関連する問題