掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
OleVariantで立ち上げた Accessのちらつき解消 (ID:42356)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
AccessをADO接続して利用しています。 長く使っているうちに、DBサイズが肥大してきますので、最適化を組み込みました。 最適化処理そのものはうまくいっているのですが、Quit処理で一瞬Accessが表示されてすぐ閉じるため、画面がちらついたように見えます。回避する方法がありましたら教えてください。 procedure TForm1.ActionCompactExecute(Sender: TObject); var AccessVariant : OleVariant; DBName, tmpDBName, Ext : string; begin Screen.Cursor := crSQLWait; AccessVariant := CreateOleObject('Access.Application'); DBName := 'Testdb.mdb'; // get new name Ext := ExtractFileExt(DBName); tmpDBName := ChangeFileExt(DBName, ''); tmpDBName := tmpDBName + ' ' + FormatDateTime('MMDDYY',Date) + Ext; try // call compact function AccessVariant.DBEngine.CompactDatabase(DBName, tmpDBName); //original 仮セーブ RenameFile(DBName, '_tempBackUp.mdb'); // copy newly compacted db CopyFile(PChar(tmpDBName), PChar(DBName), false); // delete temp file db DeleteFile(PChar(tmpDBName)); // delete original db DeleteFile('_tempBackUp.mdb'); if Active then MessageDlg('最適化を完了しました.', mtInformation, [mbOK], 0); except MessageDlg('最適化に失敗しました!' + #13#10 + '他のパソコンで使用中と考えられます', mtWarning, [mbOK], 0); end; AccessVariant.Quit; //ここで一瞬Accessが立ち上がって閉じるためにちらつきが出る Screen.Cursor := crDefault; end;
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.