この機能を使うことで、VBAでゴリゴリとコーディングする必要なく数行のコーディングで簡単にレコードをコピーしながら連番を振ることができるようになります。
要件
入力テーブルから出力テーブルへレコードこコピーする時に、出力テーブルの項目に連番を振りたい。作るもの
- 連番を発行する関数
- レコードコピーする追加クエリ
- 追加クエリを実行する
連番を発行する関数
標準モジュールに関数を準備します
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 件のコメント:
コメントを投稿