3 返信 最新の回答 日時: Nov 7, 2010 5:41 AM ユーザー:Shin

    全レコードを指定回数複製する方法

    SatoshiWatanabe

      タイトル

      全レコードを指定回数複製する方法

      フォーラムに投稿

      初めて質問いたします。

      全レコードをまるごと複製する方法として、レコードのインポートを使ってそのファイル自身のテーブルを新規または複製先のテーブルにインポートすることでまるごと複製ができました。

      そして希望の回数分だけ手作業で新規レコードとしてインポートすることにより、希望の回数だけのレコードの複製が可能でした。

      ですが、全レコードを20回増やしたい場合など、手作業でやると面倒ですし、なにより間違いが心配です。

      ちなみに、複製する元のレコード数は500ぐらいのものがいくつかあります。

      何かスクリプトなどで手作業ではなく全レコードを指定回数複製するいい方法がないでしょうか?

      それと、対象レコードの削除というメニューはありますが、対象レコードの複製というのはありそうですがないのですね?

        • 1. Re: 全レコードを指定回数複製する方法
          YODA

          Satoshi Watanabe さん、こんにちは。

          FileMaker に対象レコードを複製するコマンドは無いですので、エクスポートしてインポートする手法は有効だと思います。

          また、カスタムダイアログで複製回数を回数フィールドに入力させ、指定回数分インポート処理を
          ループする、以下のようなスクリプトを作れば、作業の簡素化ができると思います。

          カスタムダイアログを表示 ["対象レコードの複製"; "複製回数を入力"; 回数フィールド ]

          変数を設定 [$kaisuu; 値:回数フィールド] 

          レコードのエクスポート [ダイアログなし;「tempfile.fp7」; Unicode (UTF-16)]

          Loop

          レコードのインポート[ダイアログなし; 「tempfile.fp7」; 追加; シフト JIS]

          変数を設定[$kaisuu; $kaisuu - 1]

          Exit Loop If[$kaisu = 0]

          End Loop

          ご利用のファイルによっては改良すべき部分もあるかと思いますが、ご参考まで。

          • 2. Re: 全レコードを指定回数複製する方法
            sago350@未来Switch

            解決策としてはインポートの方法で解決できると思います。

            複数レコードの複製はおそらく、3つ方法があると思います。ケースバイケースで選択すればいいかと。

            ・インポートする方法

            ・対象レコードを全て変数に格納して、展開する方法

            ・関連レコードの作成を利用する方法

            #これ以外にもっとエレガントな方法があれば教えて欲しい・・・

            • 3. Re: 全レコードを指定回数複製する方法
              Shin

              ファイルのコピーを作り、ピンポンの様にお互いにインポートを繰り返していくと、作業時間は少なくなる可能性があります。

              例えば、レコード数だけを書いていくと

              1 → 1

              1 ← 2

              3 → 2

              3 ← 5

              8 → 5

              8   13

              という具合に、フィボナッチ数列になります。(回数をコントロールする方が面倒かもしれませんが、目的の回数を超えたら元に戻ればいいかも)