DBGridが以前の状態が保持されたままになり困っています


もも  2009-09-14 17:25:18  No: 35689  IP: 192.*.*.*

いつもお世話になります。
  フォームに貼り付けたDBGridのテーブル切り替えたいのですが、
以下のような現象で困っています。

  DBGridの列状態を保存するため、DBGrid1.Columns.SaveToFile()で
Form3_DBGrid.datというファイルを作成しています。
  DBGrid1.Columns.LoadFromFile()でForm3_DBGrid.datロードした後、
ADOQuery1.SQL.Add()で以前とは別のテーブルに切り替えたいのですが、
以前ロードしたForm3_DBGrid.datのテーブルを保持したままになって
しまいます。
  Form3_DBGrid.datのロードのコーディングを注釈にして無効にすると、
正常に指定したテーブルを表示します。ただ、DBGrid1.Columns.SaveToFile()
とDBGrid1.Columns.LoadFromFile()を使用しなければ、列情報の保存・
復元が出来ません。
  どうすればよいでしょうか?
  どなたかご教授頂けますでしょうか?
-----------------------------------------------------------------------
//--- FORM3:初期表示 ---
procedure TForm3.FormShow(Sender: TObject);
var
  str_wk : string;
begin
  str_wk := 'Form3_DBGrid.dat';
  if FileExists(ExtractFilePath(Application.ExeName) + str_wk) then
    begin
      DBGrid1.Columns.LoadFromFile
                     (ExtractFilePath(Application.ExeName) + str_wk)

    end;

  Form1.ADOQuery1.Close;
  Form1.ADOQuery1.SQL.Clear;
  Form1.ADOQuery1.SQL.Add('SELECT * FROM Main_Table');
  Form1.ADOQuery1.Open;

end;
-----------------------------------------------------------------------

編集 削除
Ru  2009-09-17 14:23:15  No: 35690  IP: 192.*.*.*

テーブル毎に列情報は違うわけでしょうから,
テーブル単位で*.datファイルを切り替えるとか?

編集 削除
HOta  2009-09-17 20:08:40  No: 35691  IP: 192.*.*.*

TDBGridのDataSorceはどこで切り替えていますか?

編集 削除
もも  2009-09-18 16:53:13  No: 35692  IP: 192.*.*.*

Ru 様

  アドバイスありがとうございます。
  datファイル存在チェックを組み合わせて試してみます。

編集 削除
もも  2009-09-18 16:55:30  No: 35693  IP: 192.*.*.*

HOta  様

  アドバイスありがとうございます。
  勉強不足なのでピントのずれた質問と思いますが、テーブルの切り替えはADOQuery1.SQL.Add()の記述を変更するのみと思っておりましたが、何か
不足しておりましたら、どうかご教授下さい。
  また、DBGridでテーブルを切り替える際、よく使うテクニックなどござい
ましたら、ご教授下さい。

編集 削除