#382 動的にテーブルを作成するには? クエリ

通常のAccessデータベースアプリケーションにおいては、あらかじめテーブルを作成しておき、それを含めた形でデータベース全体を構成していきます。しかし場合によっては、作業用のテーブルなど、動的かつ一時的にテーブルを作成したい場合もあります。そのような場合、クエリを使って空のテーブルを生成することができます。

それには、次のような手順でクエリを作成します。
  1. 新しいクエリをデザインビューで作成します。ここではクエリ上に配置するテーブルは選択しません。
    新しいクエリを作成

  2. 続いて、Accessのメニューより、[クエリ]-[SQL]-[データ定義]を選択します。
    SQLビューが表示される

  3. 画面がSQLを記述するビューに切り替わったら、ここに「CREATE TABLE」ステートメントを使ったテーブル作成のSQLを直接書き込みます。
    SQLステートメントを直接記述
    CREATE TABLE 得意先2 (
      得意先コード COUNTER,
      得意先名 TEXT (40) NOT NULL,
      担当者名 TEXT (30),
      部署 TEXT (30),
      郵便番号 TEXT (10),
      トドウフケン TEXT (30),
      都道府県 TEXT (15),
      住所1 TEXT (60),
      住所2 TEXT (60),
      電話番号 TEXT (24),
      ファクシミリ TEXT (24)
    )
    ※CREATE TABLEステートメントの詳細や各フィールドの定義の仕方については、AccessのヘルプやSQLの書籍などを参考にしてください。なお、拙作ツール「T'sKit」には既存のテーブルからCREATE TABLEの一連のSQLを生成するツールが付いています(ご紹介まで)。

  4. 最後に通常のクエリと同様にこのデザインを名前を付けて保存します。

  5. 更新クエリなどのアクションクエリと同様に、このクエリを実行することによってテーブルの作成処理が実行されます。

なお、すでに同名のテーブルが存在している状態でこのデータ定義クエリを実行すると、エラーとなってテーブルの上書き作成は行われません。空のテーブルを再作成したい場合には、既存のテーブルを削除しておく必要があります。その場合にも、このデータ定義クエリを使うことができます。次の例では、「DROP TABLE」ステートメントを使って既存のテーブルを削除しています。
テーブル削除のSQL
DROP TABLE 得意先2
| Index | Prev | Next |



T'sFactory
Accessで動く生産管理DB
Ureru Express
Webで使う販売顧客管理
Access開発&アドバイス
DB開発やテクニカルアドバイス
Copyright © T'sWare All rights reserved