「これはヤバかったな」という遅刻エピソード

表題の通りaccessでの自動採番を行いたいのですが、
新規レコードを作る際オートナンバーを使用せずに、「A1234」のように文字の部分は固定で数字のみ自動採番を取りたいと思っています。

オートナンバーを使用しない理由としては、
・レコードを削除した際の欠番を作りたくないということと
・管理番号として使用するのですが、どうしても同じくくりであると分かるようにする必要がある項目が度々出てくる為、枝番が必要になり一部内容を打ち換えたいという希望があります。


理想としては
自動採番 → 自動採番されたものをどうするか
A0001  → A0001(加工しない)
A0002  → A0002-1(手動で打ち換え)
A0003  → A0002-2(手動で打ち換え)
A0003  → A0003(元のA0003が打ち換えられてることによりもう一度A0003自動採番。加工しない)
A0004  → A0004(加工しない)

という様に使用したいのですが、このにするのはどのようにしたらよいでしょうか?

もしくは
自動採番 → 自動採番されたものをどうするか
A0001-0 → A0001-0(加工しない)
A0002-0 → A0002-1(手動で打ち換え)
A0003-0 → A0002-2(手動で打ち換え)
A0003-0 → A0003-0(元のA0003が打ち換えられてることによりもう一度自動採番。加工しない)
A0004-0 → A0004-0(加工しない)

のように(枝番を文字扱いという感じのイメージで)
枝番付きで採番されるが、枝番は無視するような形での自動採番は可能でしょうか?


入力フォームでのフォーム挿入前処理イベントでコードやマクロなどで設定するのかと思い調べてみたのですがなかなか分からず&うまくいかずお手上げ状態です


分かりずらい説明で申し訳ございませんが、
どのようにしたらよいのかご教授お願いいたします。

A 回答 (3件)

自分で試して教示する余裕はないので



たとえばこんな感じのを参考にするとか
http://www.accessclub.jp/bbs3/0352/superbeg10574 …
    • good
    • 0

考え方として


・管理番号最大値を取得
・取得値の+1を採番した管理番号とする
でよいのでは?

ACCESSのイベントとしてどれを使えば良いのか?
という点は、もうAccess使わなくなって10年近く経過するので忘れてしまった

フォーム関連のイベントでうまく行かないのであれば
ボタンコントロールでも配置して、明示的にイベント生成して処理すれば良さそうに思えるが?
    • good
    • 0
この回答へのお礼

ご返答ありがとうございます。

恐れ入りますが、どのようにそれを設定すればよいのか教えていただけませんでしょうか?

単純な数字のカウントアップ、文字+日付などは検索で出てきたのですが、文字+数字のカウントアップがわかりませんでした。
また、コードの内容が書いてあったものもあったのですがそれをどこに書くのかもわからず。。。

お手数ですがよろしくお願いします。

お礼日時:2020/05/26 09:22

先の例示で、新しい三番は古い三番を打ち替えてから登録するの?



既に四番として登録されているモノを勝手に(自動的)三番に書き換えるの?

要するに、手動で替えたときに全レコードの番号ふり直しするのか?
間が抜けても構わないのか?
その場合に、新たなレコード登録場合の番号は、空いてる番号優先?
それとも登録済最大番号プラス1?

間抜けても構わずに最大番号プラス1というのが最もシンプル
    • good
    • 0
この回答へのお礼

ご返答ありがとうございます。

>既に四番として登録されているモノを勝手に(自動的)三番に書き換えるの?
時系列のイメージとして
①レコードは1件ずつ登録
②古い3番は自動採番された直後に2-2番に打ちかえる
③新しい3番が登録されるときには(古い3番はすでに2-2番に打ち変えられているため)3番が存在しないため現時点で一番大きい数字(2番)の次の番号として3番が自動的採番される

枝番不要のものについては②はなしで、自動採番されたものをそまま登録

この繰り返しで1件ずつ日々増えていく
という感じを想定しています。

>手動で替えたときに全レコードの番号ふり直しするのか?
>間が抜けても構わないのか?
全レコードの番号降り直しは絶対に避けたいところです。(以前の管理番号が変わると困る為)
間もミス防止の観点からできるだけ空けたくないと思っています。


基本的に1件ずつ登録していく形になるので最大値+1ができれば、間が空くことはなくできるかと思っていたのですが、難しいしょうか?

どうにかできる方法をご教授いただきたく存じます。
よろしくお願いいたします。

お礼日時:2020/05/26 01:33

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A