即効テクニック |
日付+連番で管理している場合の伝票番号を自動で取得する方法です。 ●手順● 受注テーブルは、以下のようになっていると仮定します。 受注(伝票番号、日付、顧客番号、・・・・・)●ポイント● 伝票番号から最大値を探します。その最大値が、本日の日付と一致したら、最大値に1を加えた値が新しい伝票番号になります。違う日付の場合には、連番の部分を1から付けます。 データが1件も無い場合は、無条件に本日の日付+連番1になります。 既定値として入力させているだけですから、表示されている伝票番号を削除して違う伝票番号を入力できます。 伝票番号全体を検索しますので、規則に従わないデータが入っている場合は正常に機能しない場合があります。
- 受注テーブルをデザインビューで開きます。
- 伝票番号のデータ型を[テキスト]に設定します。伝票番号の項目を主キーを設定します。 伝票番号は、西暦(4桁)月(2桁)日(2桁)連番(3桁)合計11桁の大きな数字になりますがアクセスが管理できるのは、長整数型の場合2,147,483,647までですので、テキスト型で処理します。
- [受注]のフォームを作成します。
- 受注フォームで伝票番号用のテキストボックスを作ります。
- 伝票番号の[プロパティ]-[データ]-[規定値]に以下の数式を入力します。 =IIf(DMax("伝票番号","受注","伝票番号 Is Not Null") Is Null,CLng(Format$ (Now(),"yyyymmdd"))*1000+1,IIf(Left(CStr(DMax("伝票番号","受注","伝票番号 Is Not Null")),8)=Format$(Now(),"yyyymmdd"),DMax("伝票番号","受注","伝票番号 Is Not Null")+1,CLng(Format$(Now(),"yyyymmdd"))*1000+1))
- フォームをデザインビューからフォームビューに切り替えます。
- 新しくデータを入力して、規則どおり伝票番号が生成されているか確認をします。