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)」のように数値を指定します。