Microsoft Access で Access データベースを手動で分割する方法

高度な機能: 高度なコーディング、相互運用性、マルチユーザー スキルが必要です。

この記事は、Microsoft Access データベース (.mdb) ファイルまたは Microsoft Access データベース (.accdb) ファイルに適用されます。

概要

さまざまな理由で、データベースをフロントエンド アプリケーションまたはバックエンド アプリケーションに分割する場合があります。 バックエンド データベースにはテーブルが含まれており、ファイル サーバーに格納されます。 バックエンド テーブルにリンクするフロントエンド データベースには、すべてのフォーム、クエリ、レポート、マクロ、モジュールが含まれています。 フロントエンド データベースは、ユーザーのワークステーションに配布されます。

この記事では、Database Splitter ユーティリティを使用するのではなく、データベースを手動で分割する方法について説明します。

詳細

Microsoft Office Access 2003 と以前のバージョンの Access でデータベースを分割するには、次の手順に従います。

  1. 新しい空の Access データベースを作成します。

  2. [ファイル] メニューの [外部データの取得] をポイントし、[インポート] をクリックします。

  3. 分割するデータベースを見つけて選択します。

  4. [ テーブル ] タブで、[ すべて選択] をクリックし、[OK] をクリック します

    Access では、すべてのテーブルが新しいデータベース (バックエンド データベース) にインポートされます。

  5. 新しいバックエンド データベースをネットワーク共有に格納し、すべてのユーザーが共有に対する完全なアクセス許可を持っていることを確認します。

  6. 2 つ目の新しい空の Access データベースを作成します。

  7. [ファイル] メニューの [外部データの取得] をポイントし、[テーブルのリンク] をクリックします。

  8. 先ほど作成したバックエンド データベースを選択します。

  9. [ テーブル ] タブで、[ すべて選択 ] をクリックし、[OK] をクリック します

    Access では、バックエンド データベース内のテーブルがフロントエンド データベースにリンクされていることに注意してください。

  10. [ファイル] メニューの [外部データの取得] をポイントし、[インポート] をクリックします。

  11. 分割する元のデータベースを選択し、[インポート] をクリックします。

  12. [フォーム] タブで、[すべて選択] をクリックします。 [テーブル] タブを除くすべてのタブで、この手順を繰り返します。既にテーブルにリンクされているため、残りのオブジェクトのみをインポートする必要があります。

  13. テーブルを除くすべてのオブジェクトを選択したら、[OK] をクリック します

    これで、すべてのテーブルがリンクされ、残りのオブジェクトがインポートされていることに注意してください。

Microsoft Office Access 2007 以降のバージョンでデータベースを分割するには、次の手順に従います。

  1. 新しい空の Access データベースを作成します。

  2. [外部データ] タブで、[インポート] グループの [アクセス] をクリックします。

  3. [外部データの取得] ダイアログ ボックスで、[参照] をクリックして、分割するデータベースを見つけて選択し、[現在のデータベースにテーブル、クエリ、フォーム、レポート、マクロ、モジュールをインポートする] をクリックして選択します。チェックボックスに移動し、[OK] をクリックします

  4. [オブジェクトのインポート] ダイアログ ボックスの [テーブル] タブで [すべて選択] をクリックし、[OK] をクリックします

    Access では、すべてのテーブルが新しいデータベース (バックエンド データベース) にインポートされます。

  5. 新しいバックエンド データベースをネットワーク共有に格納し、すべてのユーザーが共有に対する完全なアクセス許可を持っていることを確認します。

  6. 2 つ目の新しい空の Access データベースを作成します。

  7. [外部データ] で、[インポート] グループの [アクセス] をクリックします。

  8. [外部データの取得] ダイアログ ボックスで、[参照] をクリックして作成したバックエンド データベースを選択し、[リンク テーブルを作成してデータ ソースにリンクする] をクリックして選択します。チェックボックスに移動し、[OK] をクリックします。

  9. [オブジェクトのインポート] ダイアログ ボックスの [テーブル] タブで [すべて選択] をクリックし、[OK] をクリックします

    Access では、バックエンド データベース内のテーブルがフロントエンド データベースにリンクされていることに注意してください。

  10. [外部データ] で、[インポート] グループの [アクセス] をクリックします。

  11. [外部データの取得] ダイアログ ボックスで、[参照] をクリックして分割する元のデータベースを選択し、[現在のデータベースにテーブル、クエリ、フォーム、レポート、マクロ、モジュールをインポートする] をクリックして選択します。チェックボックスに移動し、[OK] をクリックします

  12. [オブジェクトのインポート] ダイアログ ボックスの [フォーム] タブで [すべて選択] をクリックし、テーブルに既にリンクされているため、[テーブル] タブを除く他のすべてのタブでこの手順を繰り返します。 これで、残りのオブジェクトのみをインポートし、[OK] をクリックする必要 があります

    これで、すべてのテーブルがリンクされ、残りのオブジェクトがインポートされていることに注意してください。

Notes

このデータベースはフロントエンド データベースです。 各ユーザーがフロントエンド データベースの独自のコピーを持つよう、このフロントエンド データベースをワークステーションに配布できます。

これでデータベースが正常に分割され、パフォーマンスが向上します。 ユーザーがフォームを開くと、フォームはコンピューター上でローカルで開き、ネットワーク経由では送信されません。 ネットワークを経由する唯一のデータは、リンク テーブル内のデータです。

データベースを分割する理由

データベースを分割する一般的な理由は次のとおりです。

  • 1 つのネットワーク上の複数のユーザーとデータベースを共有しています。
  • データベースで複数のユーザーが開発しており、Microsoft Visual Source Safe がインストールされていません。
  • ユーザーがテーブルに対してデザインを変更できないようにする必要があります。

データベースを分割する最も一般的な理由は、ネットワーク上の複数のユーザーとデータベースを共有していることです。 単にネットワーク共有にデータベースを格納する場合、ユーザーがフォーム、クエリ、マクロ、モジュール、またはレポートを開くときに、これらのオブジェクトをネットワーク経由でデータベースを使用する各個人に送信する必要があります。 データベースを分割すると、各ユーザーはフォーム、クエリ、マクロ、モジュール、レポートの独自のコピーを持ちます。 そのため、ネットワーク経由で送信する必要があるデータは、テーブル内のデータだけです。

メモ データベースを分割するには、Database Splitter ユーティリティを使用することもできます。