• 締切済み

FM 繰り返しフィールドの数字を取るには

いつも勉強させていただいてます。 今在庫管理のデータベースを構築しているのですが、 注文処理というテーブルに 商品コード 1・2・3・・・・・と 注文数   1・2・3・・・・・ という二つの繰り返しフィールドがあり、 例えば、「3」の商品を「10」注文した場合に、 商品テーブルの在庫数に10加えたい場合、 どのようにしたらよいのでしょうか。 商品テーブルは1商品1レコードですが、 注文処理は1回の注文を1レコードにしているため、 複数の商品を注文することがほとんどなので繰り返しを使っています。 うまく一度の操作で在庫数を管理することはできないでしょうか。 よろしくお願いします。

みんなの回答

  • chieffish
  • ベストアンサー率44% (1149/2554)
回答No.4

>それはどうやるのですか?是非教えてください。 これ簡単です。ただ、既に別ファイルとリレーション設定がしてあると面倒かも知れません。 とりあえず手動での方法を。 今のファイルを「全レコード表示」にしておきます。 1.「名前を付けて保存」から今のファイルのデータ無しコピーを作る。 2.データ無しコピーを開いて、繰り返し設定になっているフィールドをすべて普通のフィールドに変更。 3.データ無しコピーでレコードのインポート(取り込み)を選んで、元の繰り返しファイルを指定。 4.両ファイルのフィールドを合わせて、インポート方法は「新規レコードとして追加」にチェック。 5次に出るオプション設定で「繰り返しフィールドは、複数のレコードに分ける」にチェック。 6.インポート開始

  • chieffish
  • ベストアンサー率44% (1149/2554)
回答No.3

実は私も「繰り返し」を便利?に使っています。 繰り返しも別ファイル(テーブル)から取り込めば単レコードファイルになりますので あとからデータはそのままでポータルに変更することもできます。 取っ付きやすい繰り返しで始めるのもいいと思っています。 私の場合、帳簿の伝票入力で、繰り返し入力→転記ボタン→繰り返しがバラバラになっ て各補助帳簿にコピーされる。という具合ですが、手での記帳と同じようで気に入って ます。

yunak1977
質問者

お礼

chieffishさん ありがとうございます。繰り返しを転記でバラすというと そういうスクリプトを使っていらっしゃるということでしょうか? それはどうやるのですか?是非教えてください。 今日も一日データベース作成をしていましたが 使えば使うほどいろいろ発見がありつまづきがあり、 ますます完成が見えなくなっていきます・・・ とりあえず再来週いっぱいで使える状態にしなければならないので ちょっと焦っています。 ご指導よろしくお願いします。

回答No.2

1回の発注で1レコードになるテーブルには発注コードや相手先や日 付だけを置き、1品の発注で1レコードになるテーブルをポータルで 表示させて発注コードでリレーションします。関連レコードの作成 を許可しておくこと。 これで繰り返しフィールドを使わず発注の履歴が自由にいじれるよ うになりましたから、出庫の履歴と併せて在庫の管理が可能になり ます。 というような方向でヤルといいよって話を、chieffishさんに http://oshiete1.goo.ne.jp/qa2714343.htmlでしてもらったはずな んですが、どうして元に戻ってるんだろう。繰り返しフィールドが そんなに好きですか。

yunak1977
質問者

補足

すみません。どうもポータルというものの意味がよくわからず・・・ 使ってみても思い通りに機能しないものですから。 繰り返しフィールドって一見使いやすいのに曲者なんですね。

  • aqula
  • ベストアンサー率60% (70/115)
回答No.1

繰り返しフィールドを使うとかなり面倒になります。 この場合は個別注文テーブルを作り、注文処理テーブルにポータルで表示します。 一度に10件までの注文処理として、 個別注文テーブルのフィールド  個別ID(数字)…自動入力でシリアル(開始0、増分1)  注文ID(計算)Int ((シリアル) / 10) 注文処理テーブルのフィールド  注文ID(数字)…自動入力でシリアル(開始0、増分1) 個別注文テーブルと注文処理テーブルの注文IDでリレーション 新規注文時はスクリプトにして  注文処理テーブルの新規レコード1件と  個別注文テーブルの新規レコード10件を作成 在庫管理は 個別注文テーブルと商品テーブルの商品コードでリレーション Sum (リレーション名::注文数) 繰り返しフィールドは見た目が簡単にできるので便利ですが、 後々の処理が大変になります。 面倒がらずに、テーブル、リレーションを活用してください。

yunak1977
質問者

お礼

aqulaさん ご丁寧な解説ありがとうございます。 ご指導いただいた方法でできそうです。 このまま完成に向けて進めます。 ありがとうございました。

関連するQ&A