ACCESS サブフォーム 行挿入して行番号振り直す

サブフォームで、下に行を挿入したいレコードを選択して「行挿入」ボタンを押したときに、行が挿入されて、行番号を上から振り直すために必要なモジュール。

注意すべきは、行番号フィールドを倍精度浮動小数点型にしておくこと。

Private Sub Edaban()
Dim rst As Object, 連番 As Single
Set rst = Me.RecordsetClone
If rst.RecordCount <> 0 Then
連番 = 0
rst.MoveFirst
Do Until rst.EOF
連番 = 連番 + 1
rst.Edit
rst![行番] = 連番
rst.Update
rst.MoveNext
Loop
End If
rst.Close
Set rst = Nothing
End Sub

■ 呼び出し元(行挿入ボタン)

Private Sub cmdInsertG_Click() ‘行挿入

On Error GoTo Err_cmdend_Click

If Me.NewRecord = True Then
Beep
MsgBox (“新規レコードでは行挿入は出来ません”)
Exit Sub
End If

Dim rs As Object
Dim inno As Double

Set rs = Me.RecordsetClone
rs.MoveLast
inno = Me.CurrentRecord + 0.01

rs.AddNew

rs![年] = Parent!cboNEN
rs![月] = Parent!cboMONTH
rs![会社C] = Parent!cboCOM

rs![行番] = inno

rs.Update
rs.Close
Set rs = Nothing

DoCmd.Echo False ‘画面遷移停止

Dim CR As Long
Me.Painting = False
CR = Me.CurrentRecord
Me.Requery
DoCmd.GoToRecord , , acGoTo, CR + 1
Me.Painting = True

Call Edaban

DoCmd.Echo True ‘画面遷移再開

Exit_cmdend_Click:
Exit Sub

Err_cmdend_Click:
MsgBox err.Description
Resume Exit_cmdend_Click

End Sub