レコードの新規登録時に連番を自動的に振る

TIPSメインへ戻る

概要

新たにレコードを登録する際に連続番号を自動的に付与する仕組みです。オートナンバーでは出来ない独自の連番を作ることができます。

    (ポイント)
  • 既に登録済みの番号の一番大きな値を取り出して「1」を加える
  • この処理にはDmax関数を使う

作成例

次の例ではフォーム上に「新規登録」ボタンを設置して行う場合です。番号ルールは4桁のテキストとしています 例:「0001」

  1. フォームの「番号」テキストボックスが連番対象(①)。
    新規登録ボタン(名前:[Cmd新規登録])を設置し(②)、イベントプロシージャを作ります。
  2. 新規登録ボタンのクリック時イベントに次のプロシージャを記述する。

    Private Sub cmd_新規登録_Click()
    ' 新しいレコードに移動する
    DoCmd.GoToRecord , , acNewRec
    ' 番号フィールドがテキスト型なので新しい番号の変数をテキスト型にする
    Dim bango As String
    ' 現在の最大番号に「1」を足し、4桁の表示にする
    bango = Format(DMax("番号", "T名簿") + 1, "0000")
    ' 番号フィールドに入れる
    Me!番号 = bango
    End Sub

  3. プロシージャの説明
    ・次はDmax関数で既に登録済みの番号の一番大きな値を取り出す。そして「1」を加えています。
      Dmax("番号","T名簿") + 1
    ・Format関数で4ケタにする
      Format(Dmax("番号","T名簿") + 1,"0000")

実施結果

フォームビューで「新規登録」ボタンをクリックすると、新規レコードに移って、連番が入っています。

※このテーブルには既に「0011」のレコードがあります。

(この項終わり)