#715 n番目のレコードのみ削除不可にする方法 フォーム、VBA

プログラム上で固定された、あるn番目のレコードだけを削除できないようにする方法です。

それには、フォームの「Delete/レコード削除時」イベントプロシージャを下記のようにします。 この例では「1番目のレコードだけ削除できない」ようにしています。

Private Sub Form_Delete(Cancel As Integer)
'フォームのレコード削除時

  'カレントレコードが1レコード目のとき
  If Me.Recordset.AbsolutePosition = 0 Then
    Beep
    MsgBox "1レコード目は削除できません!", vbOKOnly + vbExclamation
    Cancel = True
  End If

End Sub

ここでは、「Me.Recordset.AbsolutePosition」という記述でカレントレコードが何レコード目であるかを判別しています。この「AbsolutePosition」プロパティでは、先頭レコードは「1」ではなく「0」として扱われます。2レコード目であれば「1」、3レコード目であれば「2」となります。その点が注意事項です。


実行例:
  • 1レコード以外を削除しようとしたとき ・・・ Access既定のメッセージが表示され削除しようとします


  • 1レコードを削除しようとしたとき ・・・ オリジナルのメッセージが表示され削除できません
| Index | Prev | Next |



T'sFactory
Accessで動く生産管理DB
Ureru Express
Webで使う販売顧客管理
Access開発&アドバイス
DB開発やテクニカルアドバイス
Copyright © T'sWare All rights reserved