やりたい事
ABC001~とかの連番を振りたい
8桁の日付に連番を振る方法
まず考えたのは、20230901+001という連番を採番するスクリプトを探しました。
そもそも、日付を8桁の数字にする方法もしらないし・・・
ココがポイント
Year ( Get ( 日付 ) ) * 10000 + Month ( Get ( 日付 ) ) * 100 + Day ( Get ( 日付 ) )
これで、8桁の数字にはできるようです。
あとは、「変数+1」でループでレコードの数だけ回して行けばOKですね。
ただし、連番を3桁にする場合は、下記のように1000倍しないとダメですね。
Year ( Get ( 日付 ) ) * 10000000 + Month ( Get ( 日付 ) ) * 100000 + Day ( Get ( 日付 ) ) * 1000
あとから別の方法がある事がわかりました。
ココがポイント
Year ( Get ( 日付 ) ) & Right ( "00" & Month ( Get ( 日付 ) ) ; 2 ) & Right ( "00" & Day ( Get ( 日付 ) ) ; 2 )
こちらの方法でも、8桁の日付数値が出せるようでした。
ABCとかのテキストに連番を付加
たとえば、日付じゃなくて、テキストに連番を採番したい時はどのようにやるのだろうか!?
これは、実際にやってみたら簡単でした。
フィールドをテキストフィールドにしてあることが前提になります。
ココがポイント
連番を採番する変数を「&」で接合すればOK
日付とテキストに連番を付加
今回は、日付を数値にして連番をやるというのではなく、間にテキストを入れてしまえば、上のようにやれば、日付+テキスト+連番という感じになります。
ちなみに、最後の連番の桁を揃えたい場合は、
ココがポイント
Right ( $変数; 3 ) ※3桁の場合
とやれば、3桁に統一出来て、頭に0が付加される形になります。
新規レコードの場合
新規レコードにて、頭にテキスト文字を付加したり、日付を付加する方法はどうやればいいのでしょうか?
フィールドオプションにて、「シリアル番号」から新規レコードを追加した時に自動で連番を振る機能はありますが、これでは、頭に何かつけたい時には対応してなさそうですね。
ネット上をサクッと検索してみましたが、それに相当する記事は見つかりませんでした。
スクリプトを組んで、何かのトリガが発生した時に、自動入力させるような感じかとは思いますが、何かパッとしませんね。
あとは、シリアル番号だけ最初に自動入力させた後に、変換させる方法などが思いつきますね。