フォーム上にデータベースを最適化|修復するコマンドボタンを作成するには
  1. データベースウインドウのフォームタブをクリックして新規作成のボタンをクリックします。
    Forms_Beginner_001_Fig1.gif
    図1-データベースウインドウ

  2. フォームの新規作成ダイアログが表示されたらデザインビューを選択してOKのボタンをクリックします。
    Forms_Beginner_001_Fig2.gif
    図2-フォームの新規作成ダイアログ

  3. フォームが表示されたら、メニューからツールボックスのアイコンToolBox.gifをクリックしてコマンドボタンを2個作成します。

  4. コマンドボタンを選択したら、メニューからプロパティのアイコンProperty.gifをクリックしてプロパティのダイアログを表示させます。プロパティのキャプション(Caption)とコントロール名(Name)を以下のように設定します。

    Object Property Setting
    1番目のコマンドボタン Name cmdCompact
    Caption 最適化
    2番目のコマンドボタン Name cmdRepair
    Caption 修復

     

    Forms_Beginner_001_Fig3.gif
    図3-コマンドボタンのプロパティダイアログ

  5. コマンドボタンのプロパティダイアログからイベントタブをクリックしたらOn Clickイベントをクリックして以下のコードを入力します。
    Private Sub cmdCompact_Click()
        SendKeys "%(TDC)"
    End Sub
      
  6. フォームビューモードに切り替えたら、最適化のコマンドボタンをクリックして確認して下さい。
    Forms_Beginner_001_Fig4.gif
    図4-サンプルフォーム


修復用のコマンドボタンも同様の手順で作成しますが、SendKeysステートメントには %(TDR) を指定します。Access 2000では、%(TDC)で最適化/修復を同時に行いますので%(TDR)は不要です。

Tip:
(01/17/2000)
Access 2000では、データベースを閉じるときに自動的に最適化するオプションが追加されました。このオプションを有効にするには、ツールメニューからオプションをクリックしてオプションダイアログを表示させます。次に、オプションダイアログから全般タブをクリックして閉じる時に最適化するのチェックボックスをクリックします。

Note:
(01/17/2000)
データベースを最適化するには、ツールメニューから行う他にDAOのCompactDatabaseメソッドを使用する方法があります。Access 97では、ツールメニュー、DAOのどちらの方法を使用しても同じように最適化されます。ところが、Access 2000では、仕様変更により全てのオブジェクトがMSysAccessObjectsテーブルのBLOB(Binary Large OBject)に格納されるようになりました。この仕様変更により、DAOのCompactメソッドを使用した場合、以前(Access 97)のように最適化されないようになりました。

Access 2000で最適化する場合、DAOのCompactメソッドを使用しないで、ツールメニューから行う必要があるようです。

Note:
(01/29/2000)
Access 2000でデータベースの最適化を行うと、Accessのオブジェクト(フォーム、レポート、マクロ、モジュール)の作成日付および最終更新日付が最適化した日付にリセットされます。データベースを閉じるときに自動的に最適化するオプションを設定すると、最終更新日で更新履歴を管理することが出来なくなりますので注意してください。

この不具合の詳細はQ244642を参照してください。