1つだけ過去を変えられるとしたら?

以下のフォームがあります。
 
 製品 001 ABC
 -------------------------------------
 行番号  原料(使用成分) 容量 ・・・
  10    ABC       5kg
  20    EFG       3kg
  ・

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

A 回答 (2件)

こんにちは。



>製品が異なれば再度10、20、30・・・と入力させます。

表形式のフォームなどで、“該当レコード数が簡単に確認ができるようにするための表示”ということでしょうか?EXCELの行番号のようなイメージですか?
もしそうであれば、サブフォームのフォームフッターあたりに非連結テキストボックスをつくって、コントロールソースを =Count(コントロール名)とした方が楽です。ご検討下さい。

ご希望のことを実現するためには、様々な方法が考えられますが、その中で比較的簡単な方法を紹介します。
考え方は、一時的に連番を記録するフィールドを用意し、SQLでレコードセットを開いたときに、該当レコードに対し、連番を振って更新をかけるというものです。

参考URLをご覧下さい。
「参考ファイル」-「Access Contents」のNo.41とNo.71あたりが参考になりますよ。

参考URL:http://www.accessclub.jp/index.html
    • good
    • 0
この回答へのお礼

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

お礼日時:2004/12/02 08:35

VBAで処理するしか無さそうですね。



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

追加の質問がある場合は、情報を入力(表示される)コントロールの種類および名前を書いてくださいね。
    • good
    • 0
この回答へのお礼

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

お礼日時:2004/12/02 08:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!