Access データベースからレコードを削除します。削除中にエラーが発生しました

StackOverflow https://stackoverflow.com/questions/34161

  •  09-06-2019
  •  | 
  •  

質問

次のような状況があります。サブフォーム(レコードは特定のキーを介してメインフォームのレコードにリンクされています)を備えたAccessフォームを構築しました。サブフォーム内のレコードを削除しようとすると、次のメッセージが表示されます。「あなたと別のユーザーがデータを変更しようとしたため、アクセスはアクションを一時停止しました」(ドイツ語からのおおよその翻訳)。サブフォームから(そしてそれぞれフォームの背後にあるテーブルから)これらのレコードを削除する方法を知っている人はいますか。

役に立ちましたか?

解決

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

Access では通常、レコードを削除する前に RunCommand メソッドを使用して編集を取り消し、これを回避します。

DoCmd.RunCommand acCmdUndo

他のヒント

サムジャドソンは次のように提案しました。

DoCmd.RunCommand acCmdUndo

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

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

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

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

ただし、コントロールの AfterUpdate イベントが発生した後、または AfterUpdate イベントが発生した後 (つまり、データが基になるデータ テーブルに保存された後) のフォームに対する編集は、[元に戻す] では元に戻されないことに注意してください。

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top