ヘルプの森~Excel・Access・Office全般ヘルプデスクサイト

No.002

テーブルの複数フィールドのデータ型をまとめて変更する

2003/2007/2010/2013/2016

1つのフィールドのデータ型を変更するならばデータ定義クエリを使って処理することができます。構文は次のとおりです。

  ALTER TABLE テーブル名 ALTER COLUMN フィールド名 データ型;

データ型の指定は次のとおりです。

  • テキスト型 …TEXT または CHAR
  • 数値型(バイト型) …BYTE
  • 数値型(整数型) …INTEGER
  • 数値型(長整数型) …LONG
  • 数値型(単精度浮動小数点型) …SINGLE
  • 数値型(倍精度浮動小数点型) …NUMBER
  • 通貨型 …CURRENCY または MONEY
  • 日付/時刻型 …DATE
  • オートナンバー型 …COUNTER

例えば、テーブルインポート時にいつも、複数フィールドまとめて自動でデータ型を変更、となるとマクロもしくはVBAをが便利です。

マクロで作成する場合は、アクション[SQLの実行]に上記記述を設定しますが、複数フィールドの場合は、その数分のアクション[SQLの実行]を作成して実行すればいいと思います。

VBAを使用する場合は、次のような記述です。
テーブル1のフィールド[あああ]を日付/時刻型に、テーブル2のフィールド[いいい]をテキスト型にします。

  CurrentDb.Execute "ALTER TABLE テーブル1 ALTER COLUMN あああ DATE"
  CurrentDb.Execute "ALTER TABLE テーブル2 ALTER COLUMN いいい TEXT"

たくさんのフィールドがある場合は、VBAが便利でいいですね。

さて、テキスト型に設定して実行した場合、フィールドサイズが「255」でできあがります。
フィールドサイズも含めて設定したい場合、「TEXT(25)」または「CHAR(25)」のように数値を指定します。

関連ヘルプ

AccessからExcelを操作する 《CreateObject》
既存のメモ帳を開く 《Shell》
データベースを開いている状態で自分自身をバックアップする 《FileSystemObject》
twitter hatena line pocket