- ベストアンサー
アクセスにて、更新の処理を..
アクセスのフォームにおいて、普段は追加と参照だけで、更新はできないようにロックがかかっていて、いざ情報が間違っていて、情報を更新したいときは、更新したいレコードを(例えば)ダブルクリックすると更新できるようになって、更新が終了するとまた、更新はロックがかかる。というようなことはできるのでしょうか?
- みんなの回答 (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
その他の回答 (1)
- situmonnsya
- ベストアンサー率14% (1/7)
VBで記述します。 1.フィールドをダブルクリックしたらのイベントにロックを解除させるコードを記述。 2.データを書き換えて、そのフィールドを抜けるイベントに更新のロックをかける記述。 しばらくアクセスさわってないので、コードは自分で考えて下さい。 でも、かなり簡単にできるとオモイマス。 一応答は、「できる」とういことで。
お礼
コードがわかっていれば簡単にできてしまうのですね。 これからよく勉強したいと思います。
お礼
そのまま、コピーして張り付けたのですが、まさに理想どおりになりました!!ほんとうにありがとうございます。 コードに関してはぜんぜんわからないので、これからよく勉強します。