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

新しい年(度)+00001

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

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

このQ&Aに関連する最新のQ&A

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に関連する人気のQ&A

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

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q見積書をエクセルで作成時に連番をふりたい。

見積書をエクセルで作成しています、セルに見積書番号を付けたいのですが自動で連番を書き込む事はできますか?
見積書のエクセルファイルを開いたときに番号が1つ増えて番号が記入されていく様にしたいと思っています。

Aベストアンサー

VBAになりますね。

Private Sub Workbook_Open()
Sheets("見積書").Cells(1, 1) = Sheets("見積書").Cells(1, 1) + 1
End Sub

これでA1に連番がはいります。


人気Q&Aランキング

おすすめ情報