4 返信 最新の回答 日時: May 20, 2009 11:02 PM ユーザー:user6776

    レコードを一気に複製するには?

    d.o

      タイトル

      レコードを一気に複製するには?

      フォーラムに投稿

      みなさんこんにちは。

       

      件名のように複数のレコードを一気に複製するにはどうしたらよいでしょうか?

      例えばレコードが100件あって、そのうち50件が抽出されていたとします。抽出されている50件を一気に複製して、あるフィールドの値だけを変えたいのです。(この場合、最終的にレコード数は150ですよね) 

       

      今は抽出されているレコードをExcelで書き出してからインポートしてから全置換でフィールドの値を変えています。

      もっとスマートな方法は無いでしょうか?よろしくお願いします。

       

        • 1. Re: レコードを一気に複製するには?
          Hiro
            

          自己テーブルのインポートは出来ないので、

          一旦、仮設テーブルに仮インポートして全置換処理してから、

          これを元テーブルに呼び戻します。

          • 2. Re: レコードを一気に複製するには?
            d.o
              

            Hiroさん

             

            ありがとうございます。

            もとのテーブルと全く同じフィールドを持つ別テーブルを作成して、スクリプトでインポートをしたところうまくいきました。

            これで行きたいと思います。 

             

            レコードの複製で対象レコード全てを複製して複製したレコードだけが表示対象に切り替わるような機能があると便利だとは思いますが...。

             

            • 3. Re: レコードを一気に複製するには?
              Hiro
                

              もとのテーブルと全く同じフィールドを持つ別テーブルを作成して、


              レコードのインポートでインポート先に新規テーブルを指定すると自動的にコピーテーブルを作りそこへインポートできます。

              別途作る手間はいりません。

               


               

              レコードの複製で対象レコード全てを複製して複製したレコードだけが表示対象に切り替わるような機能があると便利だとは思いますが...。

               


              ODBCなら自己インポートも可能なので、この機能を利用するとご希望に近いことができるかな、

              ただ設定がわずらわしいですが、.....

               にHiroにより編集されたメッセージ
              • 4. Re: レコードを一気に複製するには?
                user6776
                  

                スクリプトでループするのはどうですか?

                 

                 

                こんな感じのスクリプトで 

                 


                最初のレコードへ移動 

                $cntmax = Get(対象レコード数)

                Loop

                $cnt = $cnt + 1

                レコード複製

                (何か処理を入れるならココ) 

                最初のレコードへ移動

                レコードを対象外に

                Exit Loop If $cntMax <= $cnt

                End Loop 


                レコードの複製なので、シリアル値等は考慮していないので、レコード複製後に処理をいれてやればいいかと。