Tutorials and Guide to Samples (v11)

レッスン 4:SQL パススルー クエリを作成する (Microsoft Access チュートリアル)

Microsoft Access では、SQL ステートメントを使用してクエリを作成することができます。通常、クエリを作成する際は、SQL ステートメントが自動的に処理されます。パススルー クエリを作成した場合、SQL ステートメントは変更されないまま ODBC ドライバーに渡されます。次に、クエリは ODBC ドライバーにより Pervasive の ODBC インターフェイスに渡され、ODBC リクエストが Pervasive エンジン リクエストに変換されます。

このレッスンでは、Pervasive サンプル データベースの Course テーブルのデータを表示する簡単なクエリを作成します。

SQL パススルー クエリを作成するには

  1. [Demodata: データベース]ウィンドウの[クエリ]タブで[新規作成]をクリックします。
  2. [クエリの新規作成]ダイアログ ボックスで[デザイン ビュー]を選択し、[OK]をクリックします。



  3. [テーブルの表示]ダイアログ ボックスの[閉じる]をクリックします。



    デフォルトでは、新しいクエリを作成する基となる既存のテーブルまたはクエリを選択するよう指示されますが、ここでは SQL パススルー クエリを作成しているため、このダイアログ ボックスを使用する必要はありません。[閉じる]をクリックします。
  4. Access のメイン メニューから[クエリSQLパス スルー]を選択します。
  5. Access のメイン メニューから、[表示プロパティ]を選択します。
  6. [クエリ プロパティ]ダイアログ ボックスの[ODBC 接続文字列]フィールドに「DSN=Demodata」を追加し、ダイアログ ボックスを閉じます。



    この文字列によりレッスン 1 で作成したデータ ソース Demodata が認識されます。このクエリのプロパティを設定することにより、クエリと Demodata が関連付けられます。プロパティを設定しない場合は、クエリを実行するたびにデータ ソース名を入力するよう指示されます。
  7. [SQL パススルー クエリ]ウィンドウに、以下の SQL ステートメントを入力します。
    SELECT * FROM Course
    Access では、ステートメントの最後に使用される Pervasive PSQL v11 の標準的な区切り文字が正しく処理されません。ステートメントの区切り文字としてセミコロン(;)、シャープ(#)、円記号(¥)、逆引用符(‘)などを使用した場合は、ステータス コード 501 が表示されます。
    作成する SQL ステートメントは、Pervasive PSQL v11 構文の条件に準拠している必要があります。基本的な構文の説明については、『SQL Engine Reference』を参照してください。
  8. メイン メニューの[クエリ]から、[実行]を選択します。クエリの結果が表示されます。



  9. [SQL パススルー クエリ]ウィンドウを閉じ、クエリに「CourseGrid」と名前を付けて保存します。



SQL パススルー クエリを使用することにより、Access のテーブルのデザイン ビューでは実行不可能なタスクを実行できます。たとえば、SQL パススルー クエリを使用してテーブルに列を追加することができます。

以下のセクションでは、SQL ステートメントの例をいくつか説明します。詳細については、『SQL Engine Reference』を参照してください。SQL ステートメントの例を[SQL パススルー]ウィンドウにコピーした場合は、構文エラーを防ぐために一部の特殊文字(引用符など)を再入力する必要があります。

Access における SQL ステートメント作成を許可する場合(デザイン ビューでクエリを作成する場合など)、そのステートメントは Pervasive PSQL v11 構文ではなく、Jet SQL 構文に適合している必要があります。したがって、Access で作成された SQL ステートメントは、Pervasive PSQL v11 の構文エラーになる可能性があります。Acceess のデフォルトでは、SQL ステートメントは Jet エンジンで処理されることが前提であるため、このエラーが発生しますが、SQL パススルー クエリを使用する場合、ステートメントは Jet エンジンを回避し、処理されることなく Pervasive PSQL v11 に渡されます。

最後に、以下のステートメントはレコードを返さないことに注意してください。デフォルトのクエリ プロパティをお使いの場合は、次の警告メッセージが表示されます。

この警告が結果に影響を及ぼすことはありませんが、このメッセージを表示させないようにすることはできます。デザイン ビューでクエリを開き、ツールバーの[プロパティ]ボタンをクリックします。次のように、[クエリ プロパティ]の[レコード表示]フィールドを[いいえ]に設定します。

ALTER TABLE ステートメント

以下のステートメントは、Department テーブルに緊急連絡先の電話番号を保存する列を追加します。

ALTER TABLE Department ADD Emergency_Phone CHAR(20) 

更新された Department テーブルを確認するには、Access に再リンクします。

INSERT ステートメント

次のステートメントは、Course テーブルに行を 1 行挿入します。

INSERT INTO Course(Name, Description, Credit_Hours, 
Dept_Name)
VALUES('CHE 308', 'Organic Chemistry II', 4, 'Chemistry') 

UPDATE ステートメント

次のステートメントは、Course テーブルにある ECO 305 の単位時間を 3 から 4 に変更します。

UPDATE Course SET Credit_Hours = 4 WHERE Name = 'ECO 305' 

レッスン 3:テーブルをインポートする (Microsoft Access チュートリアル)

まとめ (Microsoft Access チュートリアル)