HOME > 即効テクニック > AccessVBA > データ操作 > フィールドを追加して連続番号を振る

即効テクニック

データ操作

フィールドを追加して連続番号を振る

(Access)
オートナンバー型のフィールドを用意しておくことで、連続番号は自動的に振られますが、Access独特のデータ(フィールド)であるため、不都合が発生することがあります。
単純に連続番号を振りたい場合は、次のような方法があります。
サンプルプロシージャでは、「動物テーブル」に「連続番号」フィールドを追加して、先頭データから連続番号を振っていきます。
テキスト型の「動物名」フィールドをもつ「動物テーブル」を用意して、次のデータを入力します。

動物名

チンパンジー
きりん
ぞう
ライオン
ペンギン

サンプルプロシージャを標準モジュールに作成して実行すると、次のように連続番号が振られます。

動物名       連続番号

チンパンジー      1
きりん         2
ぞう          3
ライオン        4
ペンギン        5

Sub Sample()
    Dim db      As Database
    Dim rs      As Recordset
    Dim tdf     As TableDef
    Dim fld     As Field
    Dim myNo    As Long
    Dim fldName As String
    
    Set db = CurrentDb

    Set tdf = db.TableDefs!動物テーブル
    
    fldName = "連続番号"
    Set fld = tdf.CreateField(fldName, dbLong, 10)
    tdf.Fields.Append fld
    
    Set rs = db.OpenRecordset("動物テーブル")
    
    myNo = 1
    rs.MoveFirst
    
    Do Until rs.EOF
        rs.Edit
        rs(fldName) = myNo
        rs.Update
        rs.MoveNext
        myNo = myNo + 1
    Loop

    DoCmd.OpenTable "動物テーブル"
    
    MsgBox "連続番号を振りました"
    
End Sub

DAOを使用していますので、[ツール(T)]メニューの[参照設定(R)]をクリックすると表示される[参照設定]ダイアログボックスで、「Microsoft DAO 3.6 Object Library」をチェックしてください。