システム開発ブログ

Access

Access:既存テーブルのカラムサイズ変更

みなさん、こんにちは。

既存のAccessシステムで文字列項目のサイズ変更が必要となりました。

Accessでテーブルの文字列項目のカラムサイズ変更といったら、テーブルをデザインビューで開いて、該当項目の「フィールドサイズ」を変更するだけですよね。
そうは言っても、運用中のシステムでサイズ変更を余儀なくされた場合にSEが出向いていけない場合など、クエリ等を作成して実行してもらうなど、お客様がクリック一つで変更できるようにしておいてあげる必要があったりします。

今回は既に運用中ということもあり、以下のようなクエリを作成して実行してみました。
ALTER TABLE 対象テーブル ALTER COLUMN 対象項目 TEXT(10);

すると以下のようなエラーが発生しました。
Ac01.jpg
Ac02.jpg

メッセージに促されるまま、レジストリの「MaxLocksPerFile」の値を上げてみましたが効果ありません。
・デフォルト値
Ac4.jpg
・変更後
Ac5.jpg

表示されたエラーはこちらです。
Ac6.jpg

さすがにこの方法では問題があるかと思い、一度手動でサイズ変更してみたところ、最初のエラーと同じくメモリ不足のエラーが出ました。
結局、件数とサイズの問題でできなかったようです。
そこで、以下の方法に変更してみたところ、うまくいきました。

1.該当テーブルをコピー
2.テーブルの貼り付け(テーブル構造のみを選択)
3.新規テーブルの該当項目のカラムサイズを変更
4.該当テーブルから新規テーブルへ追加クエリでデータ移行
5.該当テーブルを削除
6.新規テーブルの名称を元のテーブル名に変更

手順は多くなりますが、上記でデータが多い場合のサイズ変更もうまく行きました。
またどれもクエリで実行できる内容なので、お客様にはボタン1個などで実行できるようにプログラムを組んであげることもできます。

最後に、データの多いテーブルを追加、削除した後なので、ファイルサイズが膨張しているはずです。
最適化することも忘れずにしておくと良いでしょう。

この記事に関連する記事の一覧


システム開発ブログ

Twitterでilovex_officialをフォローしてください

カテゴリー

以前の部署別ブログ

ページのトップ