ロータスアプローチにアプローチ?
アプローチ? ヒント集 お役立ちソフト 当初の開設目的 活用情報掲示板 お知らせ
リンク Links Links 更新履歴 管理人へメール トップページへ

トップページ >> ヒント集 >> 全データを消去したファイルをスクリプトで使うには

全データを消去したファイルを
スクリプトで使うには

たとえば、
月ごとに明細データを入力し、
月次更新でそれまでの明細データを消去し、
翌月の明細データ用のファイルを用意するようなシステムに、
以下の方法が便利です。

 

1. 準備  全データを完全に消したデータファイルを作ります。

   (1) まず、全データを消去するデータファイルを用意します。

     それには、「ファイル」−「名前を付けて保存」を使って、たとえば
     nodata というような名前で保存します。 つまりコピーを作ります。

            -->  
コピー または パックアップ を参照して下さい。

   (2) コピーしたデータファイルのデータを完全に消します。

            -->  
全データ消去 を参照して下さい。

       
2. スクリプトの作成

   (1) ファイル名、パスなどを次のように設定したとします。

      明細データファイル名 : meisai.dbf   パス : c:\work

      全データ消去済データファイル名 : nodata.dbf   パス : c:\work\nodt

      スクリプト名 : ClearData

   (2) 簡単なスクリプトを、Globals 部に作ります。

      Sub ClearData
        Filecopy "c:\work\nodt\nodata.dbf", "c:\work\meisai.dbf"
        Filecopy "c:\work\nodt\nodata.adx", "c:\work\meisai.adx"
      End Sub

   (3) (2) で作ったサブルーチンを、他のサブルーチン、たとえば月次更新のサブルーチン
     からCall します。

     あるいは、ボタンのプロパティ画面で、「クリック時」にこのサブルーチンが動作する
     ように設定します。

   以上です。

 

なんてことはない、ファイルコピーです。

では、なぜこうしたかですが、理由は2つあります。

     1. スクリプトではデータの消去はできますが、処理速度が遅く、
       データ件数が多いと処理時間を無視できません。

     2. スクリプトではデータの完全消去ができないため、
       消去したデータ件数のわりにはファイル容量が小さくならず、
       これを繰り返すと、ムダなファイル容量が増え、
       データ入力・検索・ソートなどの処理速度に悪影響を及ぼします。

            -->  この2点については、
全データ消去 を参照して下さい。

この2つの問題を回避するため、この方法を使っています。
処理速度は速いですよ。 まぁ、やってることが単純だから、当たり前ですが...。
お試しあれ。

 

ここからは、オッチョコチョイが冷や汗もので得た教訓です。

 

ご注意  その1  明細データの取扱い

   明細データをどうするかは、システムの目的や処理の流れに応じて、お決め下さい。
   ファイル名を変えて保存するとか、明細集積ファイルにデータを移動するとか...。
   明細データを残す必要があるのなら、残す処理が終わってから、
   先ほどのようなスクリプトが実行されるよう、スクリプトのロジックを、
   充分チェックして下さい。

   うかつに、先ほどのようなスクリプトを実行すると、失われたデータを元に戻す方法は
   ありません。

   充分、ご注意下さい。

 

ご注意  その2  消去済みファイルを作る時期

   データ消去済みファイルを作る時期は、ファイル設計の変更がなくなったころ、
   つまり最終の時期を、お奨めします。

   あまり早い時期に消去済みファイルを作り、そのあとにファイル設計の変更があったが、
   消去済みファイルの作り直しを忘れたまま運用が始まり、先ほどのようなスクリプトを
   実行すると、ファイルの設計内容と、スクリプトやマクロのフィールド定義が不一致に
   なり、トラブルになります。

   運用開始後もファイル設計の変更があるでしょうから、
   「ファイル設計を変更したあとは、運用開始直前に、必ず、消去済みファイルを作り直す」
   というように手順を決めるのが、ベストかもしれません。

 


一行目に戻る

since March 29, 2000 :

更新日 :