アクセスで社員番号を自動で発行する方法を教えてください。
アクセスで社員番号を自動的に振る方法を教えてください。
アクセスは2003を使用しています。
社員番号の構成は7桁で、「1008001」このような番号が振られています。
頭2桁の「10」は固定です。次の2桁「08」は入社年度によって変わります。2008年5月1日以降2009年4月30日までの入社は「08」、2009年5月1日以降2010年4月30日までの入社は「09」というようになります。最後3桁は連番になります。ただ、「08」から「09」になったときはまた「000」からスタートになります。このような社員番号を入社年月日を入れたら自動的に発番される方法はないでしょうか?
下記のものをコピペしてみたところ、
----------------------------
Sub 入社年月日_AfterUpDate()
Dim NO As Integer
Dim NOTOP As String
NOTOP = "10" & Format(DateAdd("m",-3,[入社年月日]),"yy")
'年度内社員数抽出
NO = DCOUNT("テーブル名","社員番号 Like '" & NOTOP & "*'")
'年度内最大社員番号抽出
If NO > 0 Then
NO = Cint(Right(DMAX("テーブル名","社員番号 Like '" & NOTOP & "*'"),3))
End If
'社員番号発行
If NO = 999 Then Goto OVF
[社員番号] = NOTOP & Format(NO + 1,"000")
End If
Exit Sub
'オーバーフロー
OVF:
NO = MsgBox("年度社員番号が999を超えています。",VbOkOnly,"社員番号発行")
End Sub
-------------------------------
年度内社員数抽出の
NO = DCOUNT("テーブル名","社員番号 Like '" & NOTOP & "*'")
社員番号Likeは見つかりませんでしたというエラーメッセージが
出てしまいました。
さらに、End Ifに対するIfがありませんともメッセージが出てしまいます。
VBAはまったくわからないので、どうかご教授お願い致します。
補足
DateDiff関数とは何ですか? 『DateDiff("y",入社日,Date)』をどこに入力するのですか?