以前、こちらでfuuten_no_nekoさまに大変お世話になったものです。
以前のIDがわからなくなり、再登録しました。
まえに、helpaccessのIDで質問させていただいた件について、困ったことが出てきたので、
再度、こちらでお助けいただければと思い質問させていただきました。
以前、こちらで教えていただき、Accessで、管理番号追加というボタンを作成し、そのボタンを押すと、
yymmddプラス2ケタの通し番号が自動的に払いだされるようにしておりました。
たとえば、今日が
2009年12月25日なら、09122501から順に、09122502、09122503とボタンをクリックする度に払い
だされるようになっておりました。
ただ、2010年に変わったとたん、たとえば、今日が2010年1月5日なら、一度目のクリックでは、
10010501と払いだされるのですが、2度目のクリックで桁数が増え、010010502と、最初に0が
ついてしまい、実行時エラー3022となります。
デバックをクリックすると、下記VBAの←部分が黄色く反転しています。
rst.Fields("管理番号").Value = MngNo
rst.Fields("刃具ID").Value = 刃具ID
rst.Fields("顧客ID").Value = 顧客ID
rst.Fields("登録日").Value = Date
rst.Update ←←←←←←←←←←←←←<この部分が黄色く反転している>
2010年になったことが原因なのでしょうか。
恐れ入りますが、従来通り、8ケタで表示できる方法がおわかりであればどなたかどうぞ教えてくださいませ。
なにとぞ、よろしくお願い申し上げます。
管理番号追加ボタンのVBA
********************************************************************************************
Private Sub コマンド16_Click()
Dim dbs As Database
Dim stDocName As String
Dim rst As DAO.Recordset
Dim 刃具ID As Integer
Dim 顧客ID As Integer
Set rst = Me.Recordset
If rst.RecordCount > 0 Then
rst.MoveLast
End If
刃具ID = Form_管理番号フォーム.刃具ID
顧客ID = Form_管理番号フォーム.顧客ID
If rst.Fields("登録日").Value = Date Then
MngNo = rst.Fields("管理番号").Value + 1
MngNo = "0" & MngNo
Else
MngNo = Format(Date, "yymmdd") & "01"
End If
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("管理番号テーブル")
rst.AddNew
rst.Fields("管理番号").Value = MngNo
rst.Fields("刃具ID").Value = 刃具ID
rst.Fields("顧客ID").Value = 顧客ID
rst.Fields("登録日").Value = Date
rst.Update
On Error GoTo errorhandler16
Set rst = Me.Recordset
With rst
.Requery
.MoveLast
.MovePrevious
.MovePrevious
.MovePrevious
.MovePrevious
End With
errorhandler16:
MsgBox "管理Noを追加しました!" & Chr(13) _
& "「顧客名」を確認のうえ、「再研磨記録フォーム」にて" & Chr(13) _
& "受付日の登録手続きをしてください。", vbOKOnly + vbInformation, "メッセージ"
Me.Requery
End Sub
********************************************************************************************
お礼
piroin654さま すみません。少々焦って、複数の箇所で質問してしまいました。 申し訳ありませんでした。