アプリ版:「スタンプのみでお礼する」機能のリリースについて

伝票番号の採番で、西暦+5桁という仕様です。
これを、年が変わってから入力する際に

新しい年(度)+00001

としたいのですが、どのようにプログラムを組んだらいいのか分かりません。
ちなみに今までのプログラムでは
Format関数や、DMax関数を使って自動採番していました。

Access2000での開発です。
どうぞよろしくお願いします。

A 回答 (3件)

パソコンのタイマーから・・・・=システムの日付ですかね?


どちらにしろできると思いますが・・・・

テーブル名:伝票

フィールド:伝票No(数値型/長整数型)
      日付(日付/時刻型)

Dim StrSeireki As String

StrSeireki = Format(Me.日付, "yyyy")

If DCount("伝票No", "伝票", "Left(伝票No,4) = " & StrSeireki) = 0 Then
  Me.伝票No = StrSeireki & "00001"
Else
  Me.伝票No = DMax("伝票No", "伝票") + 1
End If

以上、フォーム上の日付更新時のコードです。
動作確認済み。
システムの時間をご希望であれば
Me.日付 → date()
にご変更を!

日付更新時に変更されないよう新規レコードのCheckは必要になるとは思いますが。
がんばって下さい。
    • good
    • 0

伝票に日付を入力するフィールドがあるのであれば



1)format関数にて西暦の抜き出し
2)Recordset若しくはDCountによりレコード数を取得
3)レコード数0(ゼロ)の時のみ西暦+00001を伝票番号に代入

以上のような方法で如何でしょうか(^ ^)
    • good
    • 0
この回答へのお礼

回答、ありがとうございます。

実はこの方法、一度試していたんです。
西暦の抜き出しは、伝票の日付からではなくて
パソコンのタイマーからなんですけど・・・
結果はというと、

 新しい年(度)+昨年からの番号の続き

という結果でして(汗)
伝票の日付からの抜き出しでも同じことだと思います。
やはりテーブルに直接入力ですかね。

いや、もうちょいがんばってみます。
それでは失礼します

お礼日時:2002/01/10 17:42

> DMax関数を使って自動採番していました。



新しい年(度)+00000 のダミーレコードを作成しておく、ではいかがですか?
    • good
    • 0
この回答へのお礼

回答、どうもありがとうございます。

はっきり言ってこの方法が一番手っ取り早いですよね。
でもやはり、こういうプログラムって作れるのか、という
興味と自分を試す意味でやってはみたもののなかなか・・・
まだまだ修行が足りないみたいです。(苦笑)

お礼日時:2002/01/10 17:11

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す