Access で SQL データ定義言語 (DDL) を使用してテーブルとリレーションシップを作成および削除する方法

中程度: 基本的なマクロ、コーディング、および相互運用性のスキルが必要です。この資料は、Access データベース (.mdb) ファイルまたは Access データベース (.accdb) ファイルに適用されます。この資料の Access 2000 バージョンについては、 209037を参照してください。

この資料の Access 97 バージョンについては、 116145を参照してください。

概要

Access には、テーブルとリレーションシップの作成と削除 (削除) に使用できるデータ定義言語 (DDL) が含まれています。アプリケーション用 Visual Basic のデータ アクセス オブジェクト (DAO) を使用して、これらの同じ操作を実行することもできます。この資料では、DDL で使用できる操作の一部について説明します。注:この資料のすべての例では、ステートメントを Access クエリに追加し、[実行] をクリックして実行することを前提としています。

詳細情報

データ定義ステートメントを使用するには、次の手順を実行します。

  1. Access データベースに新しいクエリを作成します。

  2. [クエリ]メニューの[SQL 固有]をポイントし、[データ定義]をクリックします。メモAccess 2007 では、[デザイン]タブの [クエリの種類]で [データ定義]をクリックします。

  3. [データ定義クエリ]ウィンドウにデータ定義ステートメントを入力し、[クエリ] メニューの [実行]をクリックしてクエリを実行します。メモAccess 2007 では、[データ定義クエリ]ウィンドウにデータ定義ステートメントを入力し、[デザイン]タブの [結果]で [実行]をクリックしてクエリを実行します。

オートナンバー型の主キー フィールドと、テキストデータ型の長さが 10 の MyText というフィールドを持つテーブルを作成するには、[データ定義クエリ]ウィンドウに次のステートメントを入力し、クエリを実行します。

テーブル テーブル 1 の作成 (ID COUNTER 制約主キー主キー、マイテキスト テキスト (10))リレーションシップの外部キー側は主キーを必要とせず、次のクエリを実行して作成できます。次のクエリは、長整数型のフィールドと、既定のサイズが 255 の Text データ型のフィールドを持つテーブルを作成します。

テーブル テーブル 2 の作成 (ID LONG、MyText TEXT)両方のテーブルを作成した後、次のクエリを実行すると、Table1 と Table2 の間に一対多リレーションシップが作成され、Table1 がリレーションシップのプライマリ側になります。

テーブルテーブル2追加制約リレーション1 外部キー ([ID]) 参照テーブル1 ([ID])テーブル間のリレーションシップを削除するには、次のクエリを実行します。

テーブルテーブル2ドロップ制約リレーション1の変更Table1 を削除するには、次のクエリを実行します。

テーブルテーブル1の削除Table2 を削除するには、次のクエリを実行します。

テーブルテーブル2の削除RunSQL アクションを使用して DDL ステートメントを実行することもできます。コードで DDL ステートメントを実行するには、次の例のような手順を使用します。このコードを正しく実行するには、Microsoft DAO 3.6 オブジェクト ライブラリを参照する必要があります。これを行うには、Visual Basic エディタの [ツール]メニューの [参照設定]をクリックし、[Microsoft DAO 3.6 オブジェクト ライブラリ]チェック ボックスがオンになっていることを確認します。

Sub ExecuteSQLDDL (SQLString As String)   Dim db As DAO.Database, qd As DAO.QueryDef   Set db = DBEngine.Workspaces(0).Databases(0)   Set qd = db.CreateQueryDef("")   qd.SQL = SQLString   qd.Execute   db.CloseEnd Sub

このSubプロシージャを呼び出すには、次の構文を使用します。

実行 SQLDDL "DROP TABLE Table1"

ヘルプを表示

スキルを磨く
トレーニングの探索
新機能を最初に入手
Microsoft Insider に参加する

この情報は役に立ちましたか?

フィードバックをお送りいただきありがとうございます!

フィードバックをお寄せいただき、ありがとうございます。Office サポートの担当者におつなぎいたします。

×