一部修正
Private Sub 商品ID_BeforeUpdate(Cancel As Integer)
'//最初の登録の時は何もしない
If Me.Recordset.RecordCount <= 1 Then Exit Sub
With Me.Recordset.Clone
If Me!区分け <> !区分け Then
Me.Undo
MsgBox "区分けエラー"
End If
.close
End With
End Sub
Recordset.Clone
を使うと編集前の状態でRecordsetが作成されるようです(考えてみれば当たり前)。最初のレコードの編集でも編集前と編集後を比較できるのでレコード位置のチェックは不要になりました
参考
フォームの Recordset, RecorsetClone, RecordSet.Clone の違いとは?(hatena chipsさん)
通報 ...