【accessで連番を付ける】accessを使用して連番を付ける方法。4年間愛用して使わなくなったVBAコード

こんな記事です。

 

 これまで、accessを使って連番を付ける作業を何度も行ってきた。

 もちろん、エクセルでも連番を付けることが出来るのだけれど、僕の勤めている会社では原則「データを加工する際は、accessを使わなければならない」というルールがあった。※加工するデータは機密情報の為、作業方法を統一することを目的として、そういうルールがあった。

 僕の会社が行っている業務には、「連番を付けることは、息をすることと同じ」と例えていいほど必ず連番を付けていた。

 当時、入社したての僕はaccessはもちろん、エクセルの使い方すらわからなかった。そんな状況で連番を付けるのだって大変なのに、「accessを使え」だなんてかなりハードルの高いことだった。

それでも、リストラはされたくないので、ググって調べたりして連番を付けるVBAを作った。

 作り上げてから、4年間、毎日のようにこのVBAのコードに助けられていました。VBA以外での連番の付け方がわからなかったので、本当に頼りになっていました。

 しかし、部署を移動して、新しいチャレンジをすることになった今は、使うことはもうないので紹介していきます。

 また、初めてaccessのVBAに取り組んだりする人へ「accessのVABってこんな動きをするんだ~」と思えるような一例になれば良いなと思っています。

※ただ...業務上で使用した際の責任は取りかねます。改良は自由にしてしまって構いません。

accessで連番を付けるVBAコード


    Public Function 連番を付ける()
    Dim db As Database
    Dim ds As Recordset
    ReDim x(5) As Long
    
    Set db = CurrentDb
    Set ds = db.OpenRecordset(連番を付けるクエリの名前をここに入れる, dbOpenDynaset)
    x(1) = 0
    Do Until ds.EOF
        x(1) = x(1) + 1
        ds.Edit
           ds![連番を付けるフィールドの名前をここに入れる] = x(1)
        ds.Update
        ds.MoveNext
    Loop
    ds.Close
    db.Close
    MsgBox "連番を付けました"
End Function

上記のコードを【モジュール】に張り付けて、緑色の文字の部分に必要な情報を入れる。

そうすれば、そのまま使用できるようになっています。

 

 

accessで連番を付ける際の使用方法や注意事項

 ここからは、上記で張り付けたVBAのコードを使用する際の使用方法や注意事項を記載していきます。

連番を付けるフィールドのデータ型を【数値型】にしておく

accessで連番を付ける前の注意事項1

 

このコードに関しては、変数【x(5)】に連番を代入するようになっているのですが、データ型のしては【長整数型】にしてあります。なので、連番を付けるフィールドは【数値型】に設定してください。

 

accessで連番を付ける前の注意事項2

モジュールを開いて、オブジェクト名【Database】に変更を加える

 モジュールを開いて、コードを張り付けた後はオブジェクト名【Database】に変更を加えてください。名前はなんでも大丈夫です。僕はめんどくさがりなので、最後の1文字を消して【Databas】としています。

 これをやらないと、エラーが出てしまって連番を付けることが出来ません。

VBAのコードに連番を付ける【クエリかテーブル名】【フィールド名】を記載する

 VBAのコードを張り付けてある近くにも書きましたが、緑の文字で書いてあるように名前を入れなければなりません。

accessで連番を付ける前の注意事項3

 僕の場合、テーブル名【T_maintable】のフィールド名【連番】に連番を付けることをしたいので下記のようにコードの内容を変更しました。

accessで連番を付ける前の注意事項4

 

ここまで来たら、【連番を付ける】動作を実行するだけです。

accessで連番を付ける動き

 このようにうまく実行できたでしょうか?

 

 

連番を付けるコードに関してのまとめ

 コードを自分でカスタマイズするだけでも、色々な使い方をすることが出来ます。

 例えばですが、連番を付けるフィールドのデータ型を【テキスト型】に変更、変数【x(5)】のデータ型を【テキスト型】に変えた後、ds![連番を付けるフィールドの名前をここに入れる] = x(1)の後ろに、&"号機"なんて入力して実行すると、下のようになります。

accessで連番を付けるVBAの応用

 他にも数字の桁数を変えたり、数字の前に文字を入れたりすることも可能です。

 自分で言ってしまうのも変ですが、数年間いろいろな用途で自分自身を支えてくれた一番役に立ったaccessのVBAコードの基礎なのでかなり応用が利くかと思います。

なので、もし使ってみたり、この記事を読んで気になってら使ってあげてください。

 

以上、【【accessで連番を付ける】accessを使用して連番を付ける方法。4年間愛用してい使わなくなったVBAコード】でした。