• 締切済み

Access2002 フォームに行番号を自動的に入力するには

以下のフォームがあります。    製品 001 ABC  -------------------------------------  行番号  原料(使用成分) 容量 ・・・   10    ABC       5kg   20    EFG       3kg   ・ 製品に含まれる原料を管理(入力、編集)するフォームです。このフォームで「行番号」を10、20、30と自動的に入力させたいのですが・・・。 オートNoではテーブル内で連番になってしまいますが、製品が異なれば再度10、20、30・・・と入力させます。 以上、よろしくお願いします。

みんなの回答

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.2

こんにちは。 >製品が異なれば再度10、20、30・・・と入力させます。 表形式のフォームなどで、“該当レコード数が簡単に確認ができるようにするための表示”ということでしょうか?EXCELの行番号のようなイメージですか? もしそうであれば、サブフォームのフォームフッターあたりに非連結テキストボックスをつくって、コントロールソースを =Count(コントロール名)とした方が楽です。ご検討下さい。 ご希望のことを実現するためには、様々な方法が考えられますが、その中で比較的簡単な方法を紹介します。 考え方は、一時的に連番を記録するフィールドを用意し、SQLでレコードセットを開いたときに、該当レコードに対し、連番を振って更新をかけるというものです。 参考URLをご覧下さい。 「参考ファイル」-「Access Contents」のNo.41とNo.71あたりが参考になりますよ。

参考URL:
http://www.accessclub.jp/index.html
pon_s
質問者

お礼

回答ありがとうございます。 MSのサイトに希望する内容のものがあり、解決することができました。

  • Raistlin
  • ベストアンサー率63% (65/102)
回答No.1

VBAで処理するしか無さそうですね。 情報が少ないので大まかな流れだけ・・・。 0.(必要に応じ)「行番号」のフィールドをユーザーが編集できないようにする 1.レコード移動時イベントで、新規レコードかどうかを判定 2.新規レコードなら、最終レコードの「行番号」を調べ、+10した値を「行番号」にセットする。 のようにすれば良いかと。 但し、異なる製品のデータ(原料情報)が同じテーブルに保存される場合はもっと複雑な判定が必要ですね。 追加の質問がある場合は、情報を入力(表示される)コントロールの種類および名前を書いてくださいね。

pon_s
質問者

お礼

回答ありがとうございます。 MSのサイトに希望する内容のものがあり、解決することができました。 ご指摘のようにVBAで可能でした。

関連するQ&A