• ベストアンサー

アクセスにて、更新の処理を..

アクセスのフォームにおいて、普段は追加と参照だけで、更新はできないようにロックがかかっていて、いざ情報が間違っていて、情報を更新したいときは、更新したいレコードを(例えば)ダブルクリックすると更新できるようになって、更新が終了するとまた、更新はロックがかかる。というようなことはできるのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • DexMachina
  • ベストアンサー率73% (1287/1744)
回答No.2

以下のようなコードで、お望みの動作になると思います。 'フォームを開くときに、「レコードの編集」に制限をかける '(フォームのプロパティシートで、『イベント』タブの「開く時」に 'カーソルを移動させ、右端に表示される「...」をクリックしたら、 '「イベントプロシージャ」を選択して、以下を貼り付け) Private Sub Form_Open(Cancel As Integer) On Error Resume Next Me.AllowEdits = False End Sub 'レコードの、何もコントロールがないところをダブルクリックしたら '一時的にレコード編集の制限を解除 '(フォームのデザインビューで「詳細」領域を選択し、プロパティ  シートの「ダブルクリック時」のところで、上記と同様に貼り付け) Private Sub 詳細_DblClick(Cancel As Integer) On Error Resume Next If MsgBox("編集制限を一時的に解除します。", vbOKCancel) = 1 Then Me.AllowEdits = True End If End Sub 'レコード移動で、編集制限モードに戻す '(フォームのプロパティシートの『レコード移動時』で、上記と同様に貼り付け) Private Sub Form_Current() On Error Resume Next If Me.AllowEdits Then Me.AllowEdits = False MsgBox "制限モードに戻りました。" End If End Sub

xb12r
質問者

お礼

そのまま、コピーして張り付けたのですが、まさに理想どおりになりました!!ほんとうにありがとうございます。 コードに関してはぜんぜんわからないので、これからよく勉強します。

その他の回答 (1)

回答No.1

VBで記述します。 1.フィールドをダブルクリックしたらのイベントにロックを解除させるコードを記述。 2.データを書き換えて、そのフィールドを抜けるイベントに更新のロックをかける記述。 しばらくアクセスさわってないので、コードは自分で考えて下さい。 でも、かなり簡単にできるとオモイマス。 一応答は、「できる」とういことで。

xb12r
質問者

お礼

コードがわかっていれば簡単にできてしまうのですね。 これからよく勉強したいと思います。

関連するQ&A