
Access2013を使っています。
IDはテキスト型で、 A00000000 っていう書式なんですが、
新規レコード作成時のイベントで、ID自動採番(連番をふる)をしたいのですが、下記だと最初の1レコード(A00000001)以降がエラーになってしまいます。
Format(Nz(DMax("ID", "T_テーブル名"), 0) + 1, "\A00000000" )
もちろん、すでにあるIDがA00000001なので、DMaxが使えないんですが、どうやって分けてやったら良いのかわかりません。
やりたい結果は、新規レコード作成時に、IDが"A"&"8ケタの最大値+1"が自動に振られて、テーブルのIDフィールドにA00000001、A00000002・・・とデータ保持したいのです。
説明が判り辛くて恐縮ですが、ご教示お願いします。
No.1ベストアンサー
- 回答日時:
最初につく"A"が固定なら、
ID フィールドのデータ型は数値型にして、
書式プロパティを
\A00000000
とするのがお勧めです。
式は下記のようにシンプルになりますし、処理も高速になります。
また、桁数が変更になっても書式プロパティの変更だけですみます。
Nz(DMax("ID", "T_テーブル名"), 0) + 1
現状のテキスト型から変更できない事情があるのなら、
Format(Nz(Mid(DMax("ID", "T_テーブル名"),2), 0) + 1, "\A00000000")
ご指摘の通り試したら、VBA構文エラーもなく、またテーブルにも"A00000000"のデータで保持されていると確認できました!
ありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アクセスでの追加クエリでのエ...
-
ACCESS2010 フィルタ後のエク...
-
クエリの結果が文字化け(Access...
-
Accessでレポート内の繰り返し...
-
ACCESS2000レポートのレコード...
-
アクセス レポートの行数を固...
-
Accessのテーブルを開いたとき...
-
Accessで、フォームに情報を入...
-
Accessのオートナンバーについて
-
ACCESSでテーブルにあるチェッ...
-
SQL文で パラメータが少なすぎ...
-
年度ごとの最大値
-
アクセスのエラー「クエリには...
-
アクセスのクエリー作成
-
差込印刷での全角表示について...
-
ファイルメーカーのCase関数で
-
日付型のフィールドに空白を入...
-
ACCESSのクエリで抽出条件「ま...
-
2つのテーブルに共通するレコ...
-
アクセスで追加した項目に全て...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ACCESSでテーブルにあるチェッ...
-
クエリの結果が文字化け(Access...
-
フォーム内のデータをすべて更...
-
ACCESS2010 フィルタ後のエク...
-
ACCESS2000 更新クエリで文字...
-
Accessの最大レコード数
-
Accessのテーブルを開いたとき...
-
アクセスでの追加クエリでのエ...
-
Access 「主キーにはnull値を...
-
Accessで、フォームに情報を入...
-
Accessのオートナンバーについて
-
レコード件数が0件なら印刷を...
-
Accessでレポート内の繰り返し...
-
45年前のレコードプレーヤを10...
-
access IDの振り直しについて
-
ACCESSでのひとつ前レコードの...
-
Accessの宛名ラベルウィザード...
-
文字を含むIDの自動採番
-
データシートビューをコピーす...
-
アクセス レポートの行数を固...
おすすめ情報