• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:アクセス2010 ナンバーリングのコードについて)

アクセス2010 ナンバーリングのコードについて

このQ&Aのポイント
  • アクセス2010で取引台帳テーブルに連結した入力フォームを作り、件名を入力すると契約NOを自動で採番する方法について教えてください。
  • 現在は契約NOの最大値+1を使用していますが、それでは前回作られた契約NOと重複する可能性があります。どのように修正すればいいでしょうか?
  • また、VBのコードを学んだことがないため、本やサンプルを参考にして作成しています。わかりやすく教えていただきたいです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

DCount で件数を取得して、それから連番を生成してますね。 途中のレコードが1件削除されてませんか。 そうすると連番が重なるようになります。 DMaxで最大値を取得するようにすればいいと思いますが、区分や年月などの余分な情報が付いているためそれを除いた最大値を取得する必要がありますね。 Me![契約NO] = Me![区分] & "-" & Me![コード] & Format(Me![入力日], "yymm") & "-" & Format(Val(DMax("Right([契約NO],4)", "取引台帳")) + 1, "0000")

mitimama
質問者

お礼

わかりました。 また勉強していきます。とっても助かりました。

mitimama
質問者

補足

早速、ありがとうございます。 上の通りに修正したら、また連番ができました! ちなみに、不要なデータは削除してはいけないのですか? 削除コマンドボタンで、削除できる様にしているのですが。

その他の回答 (1)

回答No.2

> ちなみに、不要なデータは削除してはいけないのですか? 最初の件数(DCount)で連番をつけると、削除した分だけ取得する連番が小さくなりますからダメですが、 私の提案した最大値(DMax)を取得する方法なら、削除しても大丈夫です。 コードのロジックをきちんと理解して使用するようにしましょう。

関連するQ&A