hiroton
2021/08/31 (火) 08:43:03
e217d@f966d
続きの処理(If IsNull(MaxID) Then
以下)自体は問題ないです。最初に指摘した通り、「目的の範囲」が正しく設定されていないのが問題です
具体例を見てみましょう
受注コード | |
---|---|
20210829001 | |
20210829002 | |
20210830001 | |
20210831001 | |
20210831002 |
今日が2021/8/31ならばAutoID
は20210831
です
Left(受注コード,4)
はそれぞれ次の通りでAutoID
と比較すると
受注コード | Left(受注コード,4) | AutoID | 比較 |
---|---|---|---|
20210829001 | 2021 | 20210831 | 不一致 |
20210829002 | 2021 | 20210831 | 不一致 |
20210830001 | 2021 | 20210831 | 不一致 |
20210831001 | 2021 | 20210831 | 不一致 |
20210831002 | 2021 | 20210831 | 不一致 |
です(Left 関数)
AutoID
は必ず8文字ですが、Left(受注コード,4)
は最大でも4文字にしかなりません。4桁の文字と8桁の文字を比較したら絶対に一致することはありません
処理の前後や、実際に使っているデータがどうこうということは関係なく、>> 1の指摘だけでこのプログラムは正常ではないということがわかるわけです
目的の結果を得る方法はいくつかありますが、コードを流用するなら次のような比較を考えればいいです
受注コード | Left(受注コード,8) | AutoID | 比較 |
---|---|---|---|
20210829001 | 20210829 | 20210831 | 不一致 |
20210829002 | 20210829 | 20210831 | 不一致 |
20210830001 | 20210830 | 20210831 | 不一致 |
20210831001 | 20210831 | 20210831 | 一致 |
20210831002 | 20210831 | 20210831 | 一致 |
通報 ...
【解決】
hiroton様
ありがとうございます!
動きました!!
なるほど!そういう意味だったのですね。
このコード自体ネットで調べて拾ってきたものなので意味が分かっていませんでした。
ご指摘を受けてコードの意味が理解出来ました。
とても勉強になりました。
ありがとうございました!