• ベストアンサー

Access2003での入力済のフィールドに対しての連番について。

Access2003での連番について。 T_商品 ID:オート CODE:数値型6桁 その他何項目かのフィールドがありCODEの部分に000001~003000くらいまで入力がされています。 003001番から自動で+1していくにはフォームでどのように指定したらいいでしょうか?? 既に003000まで入力されているので最大値を求めてやってみたりしているのですが 中々うまくいきません。 よろしくお願いいたします。

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

  • ベストアンサー
  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.1

すでに入力されているものに続けて連番を振っていくということでいいいのですね >CODE:数値型6桁 >その他何項目かのフィールドがありCODEの部分に000001~003000くらいまで入力がされ>ています。 前に0が付いていますが数値型で間違いないですね? (前0は書式でつけているだけですね) いろんな方法がありますが 規定値に次の番号を自動的に表示するようにしましょうか フォームの開くとき、レコード挿入時、削除後確認に下のようなコードを書きます Private Sub Form_AfterDelConfirm(Status As Integer) Me.CODE.DefaultValue = DMax("CODE", "テーブル名") + 1 End Sub Private Sub Form_AfterInsert() Me.CODE.DefaultValue = DMax("CODE", "テーブル名") + 1 End Sub Private Sub Form_Open(Cancel As Integer) Me.CODE.DefaultValue = DMax("CODE", "テーブル名")+ 1 End Sub

edajima2
質問者

補足

早速のご回答ありがとうございます。 Private Sub Form_AfterDelConfirm(Status As Integer) Me.CODE.DefaultValue = DMax("CODE", "テーブル名") + 1 End Sub ↑削除後確認 Private Sub Form_AfterInsert() Me.CODE.DefaultValue = DMax("CODE", "テーブル名") + 1 End Sub ↑挿入後処理 Private Sub Form_Open(Cancel As Integer) Me.CODE.DefaultValue = DMax("CODE", "テーブル名")+ 1 End Sub ↑開く時 上記三点をフォームのプロパティに入力しましたが、 コンパイルエラー メソッドまたはデータメンバが見つかりません とでてしまいました。 設定の仕方を間違えたのでしょうか??

すると、全ての回答が全文表示されます。

その他の回答 (3)

  • nda23
  • ベストアンサー率54% (777/1416)
回答No.4

テキストボックスの「規定値」プロパティを以下のようにします。 =DCount("ID","T_商品") + 1 =DMax("CODE","T_商品") + 1 上は既存の数+1、下は最大値+1です。 他の方の回答のように、イベントで仕込んでも良いのでしょう。 失敗する原因は"テーブル名"を文字通り記述したからではないですか? 回答は"テーブル名"(の所は実際のテーブルの名前を書いてください)と言っているのです。 だから、"T_商品"にしないとエラーになってしまいます。

edajima2
質問者

お礼

色々とご迷惑をお掛けいたしました。 上記ににも記載させていただきましたが、 テキストボックスの名前を変更したらうまくいきました!! 貴重なご意見ありがとうございました。

edajima2
質問者

補足

ご回答ありがとうございます。 テーブル名はT_商品でやってまして、教えていただいたとおり やってはいるのですが・・・。 規定値のプロパティはIDとCODEの二ヵ所に入力するするということ でしょうか??

すると、全ての回答が全文表示されます。
  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.3

>この行が黄色くなっています。 フォームのプロパティーのイベントタブから開く時を選び そこに Me.CODE.DefaultValue = DMax("CODE", "テーブル名") + 1 を書き込んでみてください

edajima2
質問者

お礼

色々とご迷惑をお掛けいたしました。 テキストボックスの名前を変更したらうまくいきました!! 本当に助かりました!!

edajima2
質問者

補足

ご回答ありがとうございます。 Me.CODE.DefaultValue = DMax("CODE", "テーブル名") + 1 初めに教えていただいた時に入力済となっております。 何度もすみません・・・。

すると、全ての回答が全文表示されます。
  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.2

どの行が黄色くなってます? 参照設定に参照不可のものはありませんか?

edajima2
質問者

補足

度々すみません。 Private Sub Form_Open(Cancel As Integer) この行が黄色くなっています。

すると、全ての回答が全文表示されます。

関連するQ&A