誰もがうっとうしいやつですねー。
Access2000なんですが、VBAの処理でやってみまして、
今のところちゃんと連番になっていあるものの、
不安なので、記事にしてみましたw
どんな例外があるか、想定できなかったので、見て指摘していただければと思います。
テーブルの構成は
ID:String型
作成日:Date型
連番数:Integer型
業務名:String型
クエリは、
作成日を月のフォーマットに直して、
今月より前のレコードのカウントをします。
抽出条件に
<Format(date(),"yyyy/mm")
として入力
あと、フォームの挿入前のプロシージャは以下
Private Sub Form_BeforeInsert(Cancel As Integer)
'変数の宣言
Dim tdy As Date '今日の日付
Dim nbr As Integer '総番号数
Dim bNbr As Integer '前の月の番号数
Dim aNbr As Integer '付番する番号
'入力日を入れる
tdy = Date
Me!作成日 = tdy
'付番の計算
If DCount("番号", "業務") = 0 Then
nbr = 1
Me!番号 = 1
Else
'前の月までのデータ数
bNbr = DCount("業務のカウント", "業務 クエリ")
nbr = DMax("番号", "業務") + 1
Me!番号 = nbr
'付番する番号の計算
aNbr = nbr - bNbr
End If
'フォーマットを年号+連番にする「H00-00001」
Me!ID = Format(tdy, "ge") & "-" & Format(aNbr, "00000")
End Sub
こんな感じでしょうか。
もっとこうした方が良いってのがあれば幸いです^^