• ベストアンサー

Accessのデータについて

Accessについて質問です。 フィールド数が250程のテーブルのフィールドサイズを変更すると 保存の際に定義されているフィールドが多すぎますとエラーになります。 なぜフィールドサイズを変更しただけなのにフィールドが増えたことになるのですか?(このエラーは最適化をするとでなくなります。) また、フィールドサイズを変更して保存するだけでAccessのファイルサイズが大きくなるのはなぜですか?

質問者が選んだベストアンサー

  • ベストアンサー
  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.1

>保存の際に定義されているフィールドが多すぎますとエラー Accessのテーブル内のフィールド数の上限は255フィールドです。 例えばフィールドのプロパティを変更するとAccessは変更後の設定が適用された新しいフィールドを内部的に作成し変更前のフィールドを別に保持します。保存するまで実際には置き換わりません。 この変更前内部フィールドもフィールド数の制限に数えられるため表面的には255フィールドを超えていないように見えても内部では超えているということが起こり得ます。 質問を例にとれば フィールド数が255のテーブルの内の1フィールドをサイズ変更すると 254フィールド+フィールドサイズ変更フィールド+フィールドサイズ変更前フィールド=256 となります。内部カウントは256になりテーブルの仕様の255フィールドの制限をオーバーしてしまいます。そのため保存時にエラーが発生します。最適化を行えば内部カウントも最適化されます。 フィールドサイズが200を超えそうならテーブルの構成を考え直す必要はあると思います。 >フィールドサイズを変更して保存するだけでAccessのファイルサイズが大きくなる Accessは最適化し管理しないでいるとどんどんファイルサイズが大きくなっていきます。これはAccessではいたって普通の事です。 フィールドサイズを変更した元のフィールドがゴミデータとして残ればファイルサイズも増えます。 オプション設定で[終了時に最適化]をオンにすればいつも終了時に最適化してくれます。

関連するQ&A