#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'sWareのワンポイトテクニカルアドバイスをご利用ください。3000円/件〜でご支援します。
スタンドアロンからSQL Server対応まで、オーダーメイドのシステムを短納期・安価でお届けします


Copyright © T'sWare All rights reserved