概要
新たにレコードを登録する際に連続番号を自動的に付与する仕組みです。オートナンバーでは出来ない独自の連番を作ることができます。
- (ポイント)
- 既に登録済みの番号の一番大きな値を取り出して「1」を加える
- この処理にはDmax関数を使う
作成例
次の例ではフォーム上に「新規登録」ボタンを設置して行う場合です。番号ルールは4桁のテキストとしています 例:「0001」
- フォームの「番号」テキストボックスが連番対象(①)。
新規登録ボタン(名前:[Cmd新規登録])を設置し(②)、イベントプロシージャを作ります。
- 新規登録ボタンのクリック時イベントに次のプロシージャを記述する。
Private Sub cmd_新規登録_Click()
' 新しいレコードに移動する
DoCmd.GoToRecord , , acNewRec
' 番号フィールドがテキスト型なので新しい番号の変数をテキスト型にする
Dim bango As String
' 現在の最大番号に「1」を足し、4桁の表示にする
bango = Format(DMax("番号", "T名簿") + 1, "0000")
' 番号フィールドに入れる
Me!番号 = bango
End Sub
- プロシージャの説明
・次はDmax関数で既に登録済みの番号の一番大きな値を取り出す。そして「1」を加えています。
Dmax("番号","T名簿") + 1
・Format関数で4ケタにする
Format(Dmax("番号","T名簿") + 1,"0000")
実施結果
フォームビューで「新規登録」ボタンをクリックすると、新規レコードに移って、連番が入っています。
※このテーブルには既に「0011」のレコードがあります。
(この項終わり)