2013年12月3日

Accessの追加クエリーで連番を振る

 Accessの追加クエリーで連番を振る方法を説明します。
この機能を使うことで、VBAでゴリゴリとコーディングする必要なく数行のコーディングで簡単にレコードをコピーしながら連番を振ることができるようになります。

要件

入力テーブルから出力テーブルへレコードこコピーする時に、出力テーブルの項目に連番を振りたい。

作るもの

  1. 連番を発行する関数
  2. レコードコピーする追加クエリ
  3. 追加クエリを実行する

連番を発行する関数

標準モジュールに関数を準備します

Dim newNum As Long

' 連番を初期化する
' GetNewNumを実行する前に呼び出す。
Public Sub InitNum()

    newNum = 0

End Sub

' クエリ内で呼び出す関数。
Public Function GetNewNum(v As Variant) As Long

    newNum = newNum + 1
    GetNewNum = newNum

End Function

レコードをコピーする追加クエリ


連番を振りたいフィールドに「連番:GetNerNum([フィールド1])」のように記載します。
このフィールド1は、入力テーブル内にフィールド名を指定します。(値がnullにならない項目を指定します。)

追加クエリを実行する

 クエリを実行する前に「InitNum」を呼び出して連番の初期値を設定します。
(これを実行しないと何が)

Private Sub 実行_Click()

    Dim qDef As QueryDef
    
    Call InitNum  ' 連番を初期化する
    Set qDef = CurrentDb.QueryDefs("QIテーブルコピー")
    qDef.Execute
    qDef.Close

End Sub

0 件のコメント:

コメントを投稿