ぬまろぐ

←戻る

Accessで2GB以上のデータベースを扱う方法

2023/3/4

MS Accessを使って大量データを扱うツールを作ろうとしたときに、Accessの2GB問題で苦戦したため対処法を記載します。あくまで、Accessだけでどうにかツールを作りたい場合の対処法です(MySQLなど別のデータベースにデータを格納しAccessから接続するなど、Accessに閉じなければ他にも対処法はあるかと思いますが)

Accessファイルは2GBが上限

1つのAccessファイルは2GBが上限となります。そのため、大量データを1つのAccessのデータベースに入れるとファイルが2GBを超えてエラーとなってしまいます。

複数のAccessファイルにデータを分割してリンクテーブルで参照することで対処

Accessには他のAccessファイルのテーブルを参照する「リンクテーブル」という機能があります。これを使い、ツール本体にはデータを格納せず、複数の別ファイルにデータを分割して格納し、本体からリンクテーブルで参照することで、2GB以上のデータを扱うことができます。図にすると以下のようなイメージです。

accessの2GB対処
accessの2GB越え対処方法

制約として、**1つ1つのテーブルリンクは別テーブルとなるため、1つのSQLでまとめて検索できません。**そのため、例えば1つのテーブルに格納すべき4GBのデータを2つのアクセスファイルに分割すると、2つのテーブルにアクセスしてデータを取得する必要があります。(実装の考慮が必要)