Microsoft Access Club >Access裏技Tips >このページ >次頁 < 前項 サイト内検索


連続番号をテーブルへの書き込む : Access裏技Tips



オートナンバー型のIDは欠番が生じるので連続番号に適しません。 ここでは、購入額に応じて更新クエリーを用いてテーブルに降順の連続番号を振る技を紹介します。

連続番号のテーブルへの書き込み

  1. サンプルテーブル(tbl_sample)を作成します。
  2. このテーブルに、ID(オートナンバー型)、連続番号(数値型)、購入者(テキスト型)、購入額(通貨型)のフィールドを作成します。
  3. 入力フォーム(frm_sample)をデータシートビュー形式で作成します。
  4. FunctionプロシージャNumbersGet、ZeroGetを作成します。 次に、更新クエリー(qry_更新クエリー)を作成し、tbl_sampleテーブルの連続番号フィールドに降順の連続番号を書き込んでいきます。
  5. 更新クエリーは入力フォームが開くごとに実行しますので、最新の状況を閲覧することができます。

サンプルテーブルの作成

  1. サンプルテーブルを作成します。
  2. ID(オートナンバー型)、連続番号(数値型)、購入者(テキスト型)、購入額(通貨型)のフィールドを作成します。

 標準モジュールの宣言セクションに宣言

標準モジュールの宣言セクションにPublic変数を宣言します。

Option Compare Database
Option Explicit

Public intcount As Integer '--- A
解説
  1. 値を保持するために、宣言セクションに宣言します。

Functionプロシージャ NumbersGet

Functionプロシージャ NumbersGet を作成します。

Function NumbersGet(strQueryName As String) As Integer '--- A

    intcount = intcount + 1 '--- B
    NumbersGet = intcount

End Function
解説
  1. これはレコードに対してカウンタ番号を返す関数で、クエリー上で実行します。引数には、クエリーフィールドを指定します。
  2. カウントを1つ加算していきます。

Functionプロシージャ ZeroGetの作成

Functionプロシージャ ZeroGet を作成します。

Function ZeroGet() '--- A

    intcount = 0 '--- B

End Function
解説
  1. 変数intcountを初期値 (0) に戻す関数です。NumbersGet関数を設定してあるクエリーを実行する前に必ず実行します。
  2. カウントを1つ加算していきます。

選択クエリーの作成

  1. tbl_sampleテーブルを基にした選択クエリー(qry_sample)を作成します。
  2. 選択クエリーを基にした更新クエリーを作成します。

入力フォームの作成

tbl_sampleをレコードソースに持つデータシート形式の入力フォームを作成します。

フォームの開く時イベントプロシージャの作成

フォームの開く時イベントプロシージャを作成します。

Private Sub Form_Open(Cancel As Integer)

    Call ZeroGet '--- A
    
    DoCmd.SetWarnings False '--- B
    DoCmd.OpenQuery "qry_更新クエリー", acNormal, acReadOnly '--- C
    Me.Requery ……D
    DoCmd.SetWarnings True '--- D
    
End Sub
解説
  1. FunctionプロシージャZeroGetを呼び出します。
  2. 警告メッセージをオフにします。
  3. qry_更新クエリーを実行します。
  4. 警告メッセージをオンに戻します。

動作確認

  1. デザインビューからフォームビューに切り替え、データ入力を行います。

  1. 一旦フォームを閉じて、再度開きます。
  2. 連続番号が購入額の降順に並んでいることを確認します。


関連ページ

ページの先頭へ 前ページへ戻る

 


連続番号をテーブルへの書き込む : Access裏技Tips


 

-Microsoft Access Club-

動画配信(ダウンロード、ストリーミング)対応の専用レンタルサーバー。データセンター設置場所はアメリカ合衆国です。: 動画サーバードットコム
動画配信(ダウンロード、ストリーミング)対応の専用レンタルサーバー。
データセンター設置場所はアメリカ合衆国です。
100Mbps〜1Gbpsまで対応できます。