いつもお世話になっております。
現在、"T_従業員マスタ"テーブルをAccessにて作成しておりまして
表示順を定める一意の連番フィールド"整理番号"(主キーではない)を、数値型で作成しております。
オートナンバー型ではなく、数値型で連番を付与するのは
NZ(DMAX("整理番号","T_従業員マスタ")+1,1)で可能かと思いますが
たとえば、100番まで整理番号があったとして
50番目の従業員を25番目に変更したときと、
75番目に変更したときの両方に対応できるよう、
従業員の整理番号を再付与する方法をご教示いただけますと幸いです。
イメージとしましては
・50番⇒75番の場合は、50番から100番までを再度振り直す
・50番⇒25番の場合は、25番から100番までを再度振り直す
※キリ番は動的に変化する
対象となる従業員の変更前と変更後の整理番号は
フォーム"F_従業員情報"で既に取得できるようにしておりますものの、
そのあとの処理が思い浮かばず、こちらにご質問させていただきました。
そのフォームでの取得方法は
コンボボックスの値集合ソースに、"T_従業員マスタ"を設定して
従業員氏名・整理番号を追加し、
AfterUpdate時にColumn(1)を指定して、変更前の整理番号をテキストボックスAに反映させています。
変更後の整理番号は、テキストボックスBにユーザーが手入力するようにしています。
更新クエリの実行には以下SQL文を使用しています。
VBA
1strSQL = "UPDATE T_従業員マスタ" _ 2 & " SET T_従業員マスタ.整理番号 = [forms]![F_従業員情報]![テキストボックスB" _ 3 & " WHERE (((T_従業員マスタ.整理番号)=[forms]![F_従業員情報]![テキストボックスA]));"
ここから、連番の再付与を行う更新クエリを実行する流れになるかと思います。
他に不足情報等ありましたら、お申し付けください。
どうかお力添えの程、よろしくお願い申し上げます。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/03/01 04:27