明細行の削除~行番号を整える①

Pocket

明細行を挿入した場合の処理を解説してきましたが、今回は削除した場合の処理です。
削除すると当然削除した明細番号が抜けてしまうので、再度番号を振り直す必要があります。

最初に納品書サブテーブルに「順番2」というフィールドを追加します。
2805021
このフィールドに正しい明細番号を振り直します。

次に納品書メインフォームにコマンドボタンを配置し、クリックしたときの
動作を入力します。
2805022
コードはこちらです。

Private Sub コマンド13_Click()
Dim a As Integer

Dim cnn As ADODB.Connection
Dim rs As ADODB.Recordset
Set cnn = CurrentProject.Connection
Set rs = New ADODB.Recordset
rs.Open “納品書サブ”, cnn, adOpenKeyset, adLockOptimistic

rs.MoveFirst

Do Until rs.EOF
rs!順番2 = DCount(“*”, “納品書サブ”, “納品書NO=” & Forms!納品書メイン!納品書NO & “” & ” and ” & “順番<=” & rs!順番 & “”)
rs.Update
rs.MoveNext
Loop

rs.MoveFirst
Do Until rs.EOF
rs!順番 = DCount(“*”, “納品書サブ”, “納品書NO=” & Forms!納品書メイン!納品書NO & “” & ” and ” & “順番2<=” & rs!順番2 & “”)
rs.Update
rs.MoveNext
Loop

rs.Close
Set rs = Nothing
cnn.Close
Set cnn = Nothing
Forms!納品書メイン.納品書サブ.Form.Requery
End Sub

明細行をレコードセレクタを右クリックして削除します。明細行が飛び飛びになります。
2805023
ここで新たに作ったコマンドボタンをクリックします。

実行結果です。
2805024

こんな形で再度正しい番号に振り直すことができます。
詳しいコードの解説は次回。
===================================
今日は仕事で他県に行く予定が、急遽キャンセルで一日事務所で仕事でした。
月初ということでそんなに忙し事もなく、今度見積書をAccessでやるお客さんの
データベースを作っていました。それが今回のネタとなりました。

本日も最後までお読み頂きありがとうございます。