質問 |
||
| QNo.3999533 | Access2003での入力済のフィールドに対しての連番について。 | |
|---|---|---|
| 質問者:edajima2 |
Access2003での連番について。 T_商品 ID:オート CODE:数値型6桁 その他何項目かのフィールドがありCODEの部分に000001〜003000くらいまで入力がされています。 003001番から自動で+1していくにはフォームでどのように指定したらいいでしょうか?? 既に003000まで入力されているので最大値を求めてやってみたりしているのですが 中々うまくいきません。 よろしくお願いいたします。 |
|
困り度:
|
||
| 質問投稿日時: 08/05/05 17:16 |
||
回答良回答10pt |
|
| ANo.4 | テキストボックスの「規定値」プロパティを以下のようにします。 =DCount("ID","T_商品") + 1 =DMax("CODE","T_商品") + 1 上は既存の数+1、下は最大値+1です。 他の方の回答のように、イベントで仕込んでも良いのでしょう。 失敗する原因は"テーブル名"を文字通り記述したからではないですか? 回答は"テーブル名"(の所は実際のテーブルの名前を書いてください)と言っているのです。 だから、"T_商品"にしないとエラーになってしまいます。 |
|---|---|
| 回答者:nda23 | |
| 種類:回答 どんな人:経験者 自信:参考意見 |
|
| 回答日時: 08/05/07 11:36 |
|
| |
| この回答への補足 | ご回答ありがとうございます。 テーブル名はT_商品でやってまして、教えていただいたとおり やってはいるのですが・・・。 規定値のプロパティはIDとCODEの二ヵ所に入力するするということ でしょうか?? |
| この回答へのお礼 | 色々とご迷惑をお掛けいたしました。 上記ににも記載させていただきましたが、 テキストボックスの名前を変更したらうまくいきました!! 貴重なご意見ありがとうございました。 |
回答 |
|
| ANo.3 | >この行が黄色くなっています。 フォームのプロパティーのイベントタブから開く時を選び そこに Me.CODE.DefaultValue = DMax("CODE", "テーブル名") + 1 を書き込んでみてください |
|---|---|
| 回答者:CHRONOS_0 | |
| 種類:回答 どんな人:経験者 自信:自信あり |
|
| 回答日時: 08/05/07 11:26 |
|
| |
| この回答への補足 | ご回答ありがとうございます。 Me.CODE.DefaultValue = DMax("CODE", "テーブル名") + 1 初めに教えていただいた時に入力済となっております。 何度もすみません・・・。 |
| この回答へのお礼 | 色々とご迷惑をお掛けいたしました。 テキストボックスの名前を変更したらうまくいきました!! 本当に助かりました!! |
回答 |
|
| ANo.2 | どの行が黄色くなってます? 参照設定に参照不可のものはありませんか? |
|---|---|
| 回答者:CHRONOS_0 | |
| 種類:回答 どんな人:経験者 自信:自信あり |
|
| 回答日時: 08/05/05 19:51 |
|
| |
| この回答への補足 | 度々すみません。 Private Sub Form_Open(Cancel As Integer) この行が黄色くなっています。 |
| この回答へのお礼 | この回答にお礼をつける(質問者のみ) |
回答良回答20pt |
|
| ANo.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 |
|---|---|
| 回答者:CHRONOS_0 | |
| 種類:回答 どんな人:経験者 自信:自信あり |
|
| 回答日時: 08/05/05 18:06 |
|
| |
| この回答への補足 | 早速のご回答ありがとうございます。 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 ↑開く時 上記三点をフォームのプロパティに入力しましたが、 コンパイルエラー メソッドまたはデータメンバが見つかりません とでてしまいました。 設定の仕方を間違えたのでしょうか?? |
| この回答へのお礼 | この回答にお礼をつける(質問者のみ) |