アクセス2010で取引台帳テーブルに連結した入力フォームを作り、件名を入力すると契約NOを自動で採番するように
下記のコードにして使っていました。
しばらくはちゃんと採番されていたのですが、分類をする時に使う、
2個あった区分を3個に追加して、
コードも2個から3個に追加しました。それから変になった気がします。
契約NOの最大値+1だと前回作られたNOと重複するようになってしまい、
契約NO+2だと、最後の最大値の次のNOが作れます。
なぜ突然こうなったのかが分かりません。
VBのコードをきちんと学んだ事がなく、本でサンプルを見たりしながら作っています。
わかりやすく教えていただきたく、お願いいたします。
契約NOは R-KS1305-0055
Rが区分
KSがコード
1305が年月2013/05
0055が連番で採番しています。
Private Sub 物件名_AfterUpdate()
Me![契約NO] = Me![区分] & "-" & Me![コード] & Format(Me![入力日], "yymm") & "-" & Format(DCount("契約NO", "取引台帳") + 1, "0000")
No.1ベストアンサー
- 回答日時:
DCount で件数を取得して、それから連番を生成してますね。
途中のレコードが1件削除されてませんか。
そうすると連番が重なるようになります。
DMaxで最大値を取得するようにすればいいと思いますが、区分や年月などの余分な情報が付いているためそれを除いた最大値を取得する必要がありますね。
Me![契約NO] = Me![区分] & "-" & Me![コード] & Format(Me![入力日], "yymm") & "-" & Format(Val(DMax("Right([契約NO],4)", "取引台帳")) + 1, "0000")
この回答への補足
早速、ありがとうございます。
上の通りに修正したら、また連番ができました!
ちなみに、不要なデータは削除してはいけないのですか?
削除コマンドボタンで、削除できる様にしているのですが。
No.2
- 回答日時:
> ちなみに、不要なデータは削除してはいけないのですか?
最初の件数(DCount)で連番をつけると、削除した分だけ取得する連番が小さくなりますからダメですが、
私の提案した最大値(DMax)を取得する方法なら、削除しても大丈夫です。
コードのロジックをきちんと理解して使用するようにしましょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) チェックボックスにチェックが入った後の挙動 1 2022/08/21 12:39
- Visual Basic(VBA) Accessフォームで全レコードを指定のExcelのセルへ転送し印刷する方法について 2 2022/09/08 18:23
- Excel(エクセル) Excelの操作方法を教えてください!頭文字2~8文字で特定の値に返す方法 8 2022/07/14 11:26
- Excel(エクセル) vba シート名の一覧を2列に分けるには 5 2023/04/24 08:56
- Visual Basic(VBA) VBA シート間の転記で、条件の追加コードの書き方について教えて下さい。 13 2023/02/26 09:31
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Access(アクセス) アクセスのグループ化で、 No.が10番台のJPY合計 No.が20番台のJPY合計 No.が30番 1 2022/12/20 14:39
- Visual Basic(VBA) マクロで設定時刻の入力がわかりません 2 2022/03/29 02:24
- Visual Basic(VBA) VBA 重複チェック後に値をワークシートに転記する方法を教えてください。 1 2023/03/19 12:43
- その他(恋愛相談) あなたがYESでも、わたしがNOなら性暴力←ヤバイ男たちに効いている? 4 2023/04/18 20:14
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
データベースファイル(.db)を開...
-
Accessを開きなおすとテキスト...
-
エクセルのフィルタ抽出が固まる
-
警察はスマホに保存した動画や...
-
帳票フォームでのあるコンボボ...
-
CSVファイルでテキストの改行の...
-
最新の日付とその金額をクエリ...
-
構文エラー:演算子がありませ...
-
ACCESSのSQLで、NULLかNULLでな...
-
汎用カード型のデータベースソ...
-
Access SQL のMID関数について
-
AccessのSQLで、FROM句の構文エ...
-
QRコードとバーコードについて
-
Accessのリンクテーブルについて
-
Accessフォームで平均値の出し...
-
sql update で 抽出条件データ...
-
シートが異なるセル同士を、相...
-
エクセル 顧客管理表に担当ごと...
-
FROM句の構文エラー ACCESS SQL
-
FileMaker Pro 10 で令和を表示
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
データベースファイル(.db)を開...
-
ACCESSのSQLで、NULLかNULLでな...
-
Accessを開きなおすとテキスト...
-
警察はスマホに保存した動画や...
-
エクセルのフィルタ抽出が固まる
-
Accessのフォームへ、記録者の...
-
構文エラー:演算子がありませ...
-
最新の日付とその金額をクエリ...
-
Accessのリンクテーブルについて
-
CSVファイルでテキストの改行の...
-
更新クエリをリンクデータベー...
-
データベースの選定について 要...
-
ドリームメーカーってどうやっ...
-
シートが異なるセル同士を、相...
-
帳票フォームでのあるコンボボ...
-
20万行あるデータを動かしたい
-
Access フォーム上でコンボボッ...
-
googleフォームでインストール...
-
顧客データベースを作る場合、...
-
テキストボックスにコントロー...
おすすめ情報