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