Microsoft Access 掲示板

日付が変わる毎の自動連番 / 5

6 コメント
views
4 フォロー
5
hiroton 2021/08/31 (火) 08:43:03 e217d@f966d

続きの処理(If IsNull(MaxID) Then以下)自体は問題ないです。最初に指摘した通り、「目的の範囲」が正しく設定されていないのが問題です

具体例を見てみましょう

受注コード
20210829001
20210829002
20210830001
20210831001
20210831002

今日が2021/8/31ならばAutoID20210831です
Left(受注コード,4)はそれぞれ次の通りでAutoIDと比較すると

受注コードLeft(受注コード,4)AutoID比較
20210829001202120210831不一致
20210829002202120210831不一致
20210830001202120210831不一致
20210831001202120210831不一致
20210831002202120210831不一致

です(Left 関数

AutoIDは必ず8文字ですが、Left(受注コード,4)は最大でも4文字にしかなりません。4桁の文字と8桁の文字を比較したら絶対に一致することはありません

処理の前後や、実際に使っているデータがどうこうということは関係なく、>> 1の指摘だけでこのプログラムは正常ではないということがわかるわけです


目的の結果を得る方法はいくつかありますが、コードを流用するなら次のような比較を考えればいいです

受注コードLeft(受注コード,8)AutoID比較
202108290012021082920210831不一致
202108290022021082920210831不一致
202108300012021083020210831不一致
202108310012021083120210831一致
202108310022021083120210831一致
通報 ...
  • 6

    【解決】
    hiroton様

    ありがとうございます!
    動きました!!
    なるほど!そういう意味だったのですね。
    このコード自体ネットで調べて拾ってきたものなので意味が分かっていませんでした。
    ご指摘を受けてコードの意味が理解出来ました。
    とても勉強になりました。

    ありがとうございました!