ACCESS~6つのオブジェクト

このサイトは、ACCESS2013を元に作成しておりますので、別のバージョンだと機能等の差異が生じる場合がありますので、ご注意ください。ACCESSは、データベースのデータ、SQL、画面、帳票そしてプログラムのコードが一つのファイルの中にそれぞれのオブジェクトで作られているリレーショナルデータベースソフトの一つです。それらを活用し、様々な中小規模の業務システムを実現可能なパーソナルなデータベースソフトであり言語です。
ACCESS

 

システム要件

■前提ソフト

ACCESS2013を前提にしていますが、環境としてはOffice2013を前提に記載いたします。

■システム要件

Office 2013 の 32 ビット版製品は次の Windows オペレーティング システムでサポートされています。・Windows 10(32 ビットまたは 64 ビット)・Windows 8.1 (32 ビットまたは 64 ビット)・Windows 8 (32 ビットまたは 64 ビット)・Windows 7 (32 ビットまたは 64 ビット)・Windows Server 2012 R2 (64 ビット)・Windows Server 2012 (64 ビット)・Windows Server 2008 R2 (64 ビット)Office 2013 の 64 ビット版製品は次の Windows オペレーティング システムでのみサポートされています。
・Windows 10(64 ビット)
・Windows 8.1 (64 ビット)
・Windows 8 (64 ビット)
・Windows 7 (64 ビット)
・Windows Server 2012 R2 (64 ビット)
・Windows Server 2012 (64 ビット)
・Windows Server 2008 R2 (64 ビット)
 

オブジェクトの種類

通常データベースと呼ばれるものに作られるデータの器を定義するテーブル(Table)、そのテーブルの内容を書き換えたり、削除したり、追加したり、テーブルから抽出、集計を行うためのSQLに相当するクエリー(Query)、いろいろなデータを入力したり確認応答を受け付けたりする画面に相当するフォーム(Form)、プリンターやPDFに決められたレイアウトで印刷するための帳票にあたるレポート(Report)、ドロップダウン リストから実行アクションを選んでそれぞれのアクションに必要な情報を提供し上から順に実行し制御するマクロ(Macro)、マクロは実行するアクションのリストを作成して記述する簡略なプログラミング言語と考えることができます。そして最後に上記オブジェクトの実行を制御し、マクロより細かい処理を行うためのコード(VBA)を記述するモジュール(Module)の6つのオブジェクトからACCESSは構成されています。 

■テーブル

テーブル(table)というのは、ある条件によるデータの集まりであり、一般的に表といわれるものです。ある特定の項目をキー(インデックス)として格納されるデータの集合です。テーブルの1件1件のデータをレコード、テーブルの列をカラム、レコードのある特定の項目をフィールドと呼んでいます。テーブルを作成する際に、原則として同一情報を複数のテーブルに持たないことが前提にあります。何故なら後から担当者が変わったりするとわからなくなったり、移行するときに困ったりするためですが、明確な意図がある場合には問題ないと思います。

テーブル構造






テーブルの内容を見ていきましょう。Aテーブルにマウスを位置付け、マウスを右クリックすると「開く」、「デザインビュー」他が表示されます。

「デザインビュー」をクリックすると、Aテーブルの定義内容が表示されます。テーブルは、フィールド名、データ型を指定し、その項目がどのようなデータを格納するのか、属性(フィールドサイズ、書式等)はどのようにするのかをあらかじめ定義するものです。この定義によりデータが正しく格納されなかったりするので慎重に検討する必要があります。フィールド名は、他のオブジェクトからテーブルを使用する際に使用されますので、わかりやすい名称で定義します。データ型は上記のように下向き矢印をクリックし、その内容より選択します。データ型やフィールドプロパティの詳しい内容は、「初めてのテーブル」を参照してください。商品コードは文字のため「短いテキスト」を選択します。これはACCESS2012以前の「テキスト」と同じ型になります。商品コードの左横に鍵マークが表示されていますがこれは、PRIMARY KEY( 主キー)であることを表しています。PRIMARY KEYとは、このテーブル上商品コードは、必ずユニークなコードとなるということです。①フィールドサイズ➡該当項目の長さを設定します。設定可能な最大文字数となります。フィールドサイズを6と指定すると半角は「123456」、全角は「123456」までしか格納できません。②書式➡フィールド単位の表示のための書式を指定します。例えば、数量に1,234と表示したい場合、上記の通り「#,##0」とします。Aテーブルを右クリックで「開く」を選択すると、数量に「1,234」と表示され、商品コード、商品名、数量、単価という項目で構成され、データが各々の項目に格納されていることがわかります。

 新規でテーブルを作成する場合は、メニューバーの「作成」をクリックし、その下の「テーブルデザイン」を選択してください。「テーブル1」という名称でテーブルデザイン画面が表示されますので、フィールド名、データ型、説明を入力し、テーブルを作成してください。但し、現時点では「テーブル1」はまだ保存されていませんので、作成途中で保存されることをお勧めします。

■クエリ

クエリは、一般的に言われるデータベース(DBMS)のSQLに相当すると記述しましたが、このクエリ(SQL)がないとテーブルをアクセスすることができません。VBAでもアクセスすることはできますが、件数が多い場合に性能に影響が出る場合がありますので注意が必要です。メニューバーの「作成」をクリックし、「クエリウィザード」を選択します。「選択クエリウィザード」を選択します。テーブル/クエリからテーブル:Aを選択し、選択可能なフィールドから商品コード、商品名、数量、単価を選択します。選択が終わりましたら、「次へ」をクリックします。集計なしのため、「各レコードのすべてのフィールドを表示する」を選択し、「次へ」をクリックします。クエリ名を「商品マスタ」に変更し、「クエリのデザインを表示する」を選択し、「完了」ボタンをクリックします。このクエリに抽出条件を追加してみましょう。例えば、商品名の抽出条件に「ペン」と入力し、選択の左隣の「実行」もしくは、「表示」-「データシートビュー」をクリックします。「ペン」の商品名のデータが表示されます。上記は、単純な選択クエリの例ですが、ウィザードを使えば、このように簡単にクエリを作成することができます。。 

■フォーム

フォームは、メニューバーの「作成」をクリックし、「フォームデザイン」をクリックします。下記のようなフォームのデザイン画面が表示されます。メニューバーの下の「コントロール」をクリックするとフォームのデザイン上に追加できるテキストボックスやコンボボックス等のツールボックスが表示されます。使用するコントロール(ツールボックスのテキストボックスやコンボボックスを言います)をクリックし、フォームデザイン上に描くとそのコントロールが追加されます。例えば一番上の左から2つ目のテキストボックスを選択し、デザイン上にマウスで描くと下記のとおりになります。テキストボックスウィザードの画面が表示されます。フォント、文字サイズ、スタイル、立体表示を指定して「次へ」ボタンをクリックする。IMEモードの設定(日本語入力)と自動ふりがな用の設定を行い、次へのボタンをクリックする。 テキストボックスに名称を付ける(他のオブジェクトから参照するときに使用)仮にテキストボックスの名称を「商品コード」とします。これでテキストボックスウィザードは完了です。上記で名称を商品コードは、見出し項目の内容と右側にある非連結項目のコントロール名も「商品コード」となります。位置を調整し、下記のように見出しの商品コードとその入力項目がデザイン上に作られました。作成された実際の画面は、どうなるかというとフォーム名にマウスを位置付け右クリックし、表示された機能からフォームビューを選択します。下記のような画面が表示されます。上記の左側の「商品コード」は、ラベルで右側の空欄の見出し項目になります。右側の空欄のコントロールが実際に入力するテキストボックスになります。左側のラベルは見出し項目なので、色を変える場合や文字を変更するときなどは各オブジェクトから使用されますが、ほとんどは右側のテキストボックスがデータを入力、表示等に使用されます。 

■レポート

メニューバーの「作成」をクリックし、「レポートデザイン」をクリックします。レポートのデザイン画面が表示されます。レポートデザインにも、コントロールのツールボックスがあります。これらを使って、レポートをデザインします。レポートデザイン画面の「詳細」にフォームデザインの時と同様に「コントロール」から対象のコントロールを選択し、レポートデザイン上にマウスで描きます。 テキストボックスをレポートデザインに配置すると以下のようになります。名称を商品コードとし、配置を調整するとこんな感じです。この時点では保存されていませんので必ず、右クリック-「閉じる」で保存してください。レポートのプロパティのレコードソースをテーブルAを選択し、「非連結」となっているコントロールのプロパティのコントロールソースを商品コードとします。メニューバー下の「表示」-「印刷プレビュー」をクリックすると、テーブル「A」の商品コードが印刷プレビューで表示されます。

■マクロ

メニューバーより「作成」-「マクロ」をクリックします。クリックされると、マクロの作成画面が表示されます。「新しいアクション追加」のコンボックスから、該当のアクションを選択します。「クエリを開く」を選択した場合、下記のように「クエリを開く」の指定画面が表示されます。クエリ名に作成済みの「クエリ1」を選択し、ビューを「データシートビュー」、データモードを「編集」とします。1つの処理を定義するとまた下に「新しいアクションの追加」表示されます。このように処理を1つずつ定義していくのがマクロになります。一番左にある「実行」をクリックすると、「実行する前にマクロを保存する必要があります」の確認メッセージが表示されますので、「はい」をクリックします。「クエリ1」の実行結果がデータシートとして表示されます。

 

■モジュール

モジュールは、各クエリ、フォーム、レポート、マクロにて使用される共通的なコード(VBA)を作成するオブジェクトとなります。モジュールには、標準モジュールとクラスモジュールがあります。少し複雑な話になるためここでは標準モジュールでお話させていただきます。標準モジュールを作成するのは、複数箇所で同じような処理を記述すると変更する場合も複数箇所を修正する必要があり効率が悪い、バグ(不良)の確率が高くなるといった理由から、標準モジュールで共通で作成することを検討します。そして標準モジュールはテーブル以外のすべてのオブジェクトで使用することが可能となります。メニューバーの「作成」をクリックします。そして、マクロのすぐ隣にある一番上の「モジュール」をクリックします。VBAの標準モジュールでエディタ画面が表示されます。簡単なサンプルで標準モジュールを作成してみましょう。標準モジュールに数値チェックのモジュールを作り、フォーム上で数値以外はエラーとなるように作ってみましょう。まずは、モジュールで「数値chk」というサブルーチンを作成します。上記Visual Basic Editorに下記コードを記述します。そして、フォームで作成した画面の「商品コード」右側の入力項目の「プロパティ」-「更新後処理」の下向き矢印で「イベントプロシジャ」を選択します。下向き矢印の右にある「・・・」のボタンをクリックするとフォームのイベントプロシジャのVisual Basic Editorが表示されますので下記コードを記述します。「フォーム1」にマウスを位置付けて、右クリックし、フォームビューを選択します。「フォーム1」が起動されます。「フォーム1」の「商品コード」に「A1234」と入力し、「ENTR」キーを押下します。下記のように数値エラーとなり、標準モジュール「数値chk」が「フォーム1」から呼ばれチェック処理が実行されたことになります。このように標準モジュールで定義し、クエリ、フォーム、レポート、マクロ、モジュールで呼び出し使用してください。 

データ型とフィールドプロパティ!テーブル

ACCESSのテーブルには、ローカルテーブルとリンクテーブルがあります。ローカルテーブルはACCESS内で作成したテーブルです。リンクテーブルというのは、該当のACCESSの外部にあるACCESSやOrcale、Sqlserver等様々なデータベースをACCESSの内部に情報を保持することで、ACCESSからデータを操作することができるテーブルのことです。リンクテーブルは、ODBCというドライバ経由になるため、一部制約事項がありますのでどんなテーブルでも使用できるわけではありません。例えば件数が100万件を超えるようなデータ、フィールドが300個とかになると制限によりリンクできなくなる場合がありますので注意願います。リンクテーブルは、別の機会としてここでは、ACCESSのローカルテーブルについてお話ししましょう。テーブルは、画面項目や帳票項目からどういう情報を入力し、出力しなければならないかを洗い出すところからはじまります。社員テーブルがあります。もちろん社員の情報が入ったテーブルです。社員コード、社員名、本人住所、会社メールアドレス等が入っていると思いますが、他のテーブルには同じ情報は基本必要ありません。便宜上別テーブルに同一項目を追加する場合もありますが、なるべく重複した情報を持たないのが鉄則です。
 

データ型

データ型には下記の種類があります。

■短いテキスト

文字種に制限はないので漢字やひらがな、英字だけでなく数字や日付なども入力することができます。最大255まで、旧バージョンのテキストと同様の仕様になります。

■長いテキスト

長い文字、数字に使用。最大1GBまでの文字。コントロールに表示されるのは先頭の64000文字に制限されます。

■数値型

四則計算等の演算や集計の対象とすることができます。フィールドプロパティの下記サイズ指定により最大桁数が決まります。・バイト型:0~255の整数・整数型:-32,768~32,767の整数・長整数型:-2,147,483,648~2,147,483,647の整数・単精度浮動小数点型:-3.402823×10^38~3.402823×10^38の浮動小数点数・倍精度浮動小数点型:-1.79769313486231×10^308~-1.79769313486231×10^308の範囲の浮動小数点数・レプリケーション ID 型:他のレプリカとの同期をとる時に使用・十進型:-10^28-1~10^28-1の数

■日付/時刻型

日付と時刻を入力することができます。8バイト

■通貨型

小数計算の誤差を抑えられるため、金銭の計算に適しています。小数点以下4位まで、整数は15桁までとなります。

■ オートナンバー型

一意の連番で、新しいレコードには自動的にプラス1の値が付きます。他のレコードと重複しないよう値を設定することができます。オートナンバー型は1テーブルに対し、1列のみになります。

■Yes/No型

False の場合は 0、True の場合は -1 の数値として保存される。1バイト

■OLEオブジェクト型

別のアプリケーションからの画像、グラフ等のactiveXオブジェクトとして使用。WordやExcelなどOLE(Object Linking and Embedding)機能に対応したファイルを保存するのに適しています。

■ハイパーリンク型

URLやメールアドレス、ローカルドライブのパスを保存するのに適しています。リンクアドレスをクリックすることにより、他のサイトやファイルに移動することができます。最大 8,192 文字

■添付ファイル

レコードに添付する各種の画像、文章等のファイル。1つのフィールドに複数のファイルを保存することができます。

■集計

複数のフィールドによる式を作成し、計算結果を保存するフィールドになります。正確にはデータ型ではありません。データシートビューで変更することはできません。※「フィールドプロパティ」の「③式」、「④結果の型」に具体的な設定例がありますのでそちらをご覧ください。

■ルックアップウィザード

他のテーブルやクエリを参照し、値を保存することができます。これも正確にはデータ型ではありません。テーブルのデータ型の詳細については、下記の➡Microsoftのサイトを参照してください。 

フィールドプロパティ

フィールドプロパティは、データ型、フィールドサイズにより指定可能な項目が違います。下記はデータ型別フィールドプロパティ一覧です。参考までに。

データ型別フィールドプロパティ




①フィールドサイズ

0~255文字までを最大文字数として指定します。

②新規レコードの値

データ型に「オートナンバー型」、フィールドサイズを「長整数型」にした場合にのみ指定が可能になります。新しいレコードが追加された場合の値の増やし方を設定します。・インクリメント:新しいレコードが追加された場合に値を1を開始値として、1ずつ増やします。・ランダム:ランダムな値を開始値として、新しいレコードが追加された場合にランダムな値を設定します。

③式 ④結果の型

例として、テーブルAに「金額」という新しいフィールドを追加し、データ型に「集計」を選択します。既存のフィールドでは、エラーとなります。必ず新規に追加した行で設定してください。式ビルダ-が表示されますので、[数量]*[単価]を式として入力し、OKボタンをクリックしてください。式に[数量]*[単価]と表示されますので、結果の型を下向き↓(ドロップダウンリスト)より選択します。 結果の型に長整数型を選択します。テーブルAのデータシートビューを開くと、金額のフィールドに数量×単価の結果が表示されます。 

⑤書式:データを表示する際の書式を設定します。

@:文字が存在する場合はその文字を、文字が存在しない場合は空白を表示します。テーブルAの商品コードが以下のようになっています。書式を「@@@-@@」に変更します。データシートビューを表示すると、下記のように表示されます。「<」:アルファベットのみすべて小文字にします。テーブルAの商品コードが以下のようになっています。デザインの書式を「<」に変更し、テーブルAを保存します。データシートビューを開くと、「YK0011」が「yk0011」と表示されます。実際のデータは「YK0011」ですので、表示だけ「yk0011」になっていることになります。 「>」:アルファベットのみすべて大文字にします。書式に「>」を設定すると、逆にそれそれ、「mk0012」、「MK0012」になります。 

⑥精度

フィールドサイズが十進型のみに指定できます。整数部桁数と少数部桁数の合計の桁数を指定します。 

⑦小数点以下保持桁数

小数点以下の桁数を何桁まで持つかを指定します。1024.210を少数点第2位までなら「2」を指定し1024.21までを保持します。 

⑧小数点以下表示桁数

書式:「数値」書式に「数値」の場合、小数点以下表示桁数を「6」に設定しても「小数点以下保持桁数」の指定値までしか桁数は表示されません。書式:「通貨」書式が「通貨」「ユーロ」「固定」「標準」「パーセント」「指数」の場合、小数点以下表示桁数の指定値分の桁数が小数部に表示されます。

⑨定型入力

決められた形式に従って利用者にデータを入力してもらうことができます。 

⑩標題:フィールド名と違う名称をデータシートビューに表示したい場合に設定します。

下記Aテーブルは、左端に「商品コード」と表示されています。テーブルのデザインの商品コードのフィールドプロパティの標題を「商品番号」に変更します。テーブルAのデータシートビューを開くと、「商品コード」が「商品番号」となっています。最初からちゃんと考えて決めればこんなことをしなくていいので、2つの名称が混在することを考えると、あまりお薦めできませんが、こういう使い方もあると覚えておいてください。

⑪既定値:新しいレコードが追加されたとき、指定された値を自動的に設定します

新規作成のレコードが既定値の設定で済む場合、VBA(コード)もしくは、クエリ等で処理を記述しなくてよくなります。但し、全テーブルの共通仕様としなければ、このテーブルは、処理を記述し、このテーブルは既定値で設定されるとなると統一性が取れなく混乱を招きますのでよく検討してから使用しましょう。 

⑫入力規則:条件を設定し、その条件に当てはまらない場合エラーが表示されます

テーブルAの数量の入力規則に「<10000」を設定します。データシートビューを開き、「数量」に10000を入力しENTRキーを押下すると、下記のとおりエラーメッセージが表示されます。

⑬エラーメッセージ:「⑥入力規則」の条件に当てはまらない場合に指定のエラーメッセージを表示します。

エラーメッセージに指定がない場合、ACCESS側でエラーが表示され、指定がある場合、指定のメッセージが表示されます。エラーメッセージに「9999以下の値を入力してください。」のメッセージを設定します。 データシートビューを開いて、数量に「10000」を入力し、ENTRキーを押下すると、「9999以下の値を入力してください。」のメッセージが表示されます。 

⑭値要求

「値要求」は値の入力が必須がどうかを指定します。「はい」指定の場合は必ず値を入力しなければなりません。「いいえ」の場合。「Null」を入力可能ですが、「はい」の場合、「Null」は入力不可になります。

⑮空文字列の許可

短いテキスト、長いテキスト、ハイパーリンク型に指定が可能です。値要求との組合せで入力可能な値が変わってきます。「はい」の場合、「長さ0の文字列」は入力可能ですが、「いいえ」の場合、「長さ0の文字列」は入力不可になります。「Null」は本当に何も値が無いことを表し「長さ0の文字列とは「””」のことになります。

⑯インデックス

特定のフィールドのデータとそのレコード番号をデータ順に並べた索引のことをいいます。指定したフィールドを対象にした検索や並べ替えを高速に実行することができます。その反面、インデックスを作成すると、データの追加、更新、削除の度にインデックスの更新が実施されるため、処理に時間がかかりますのでむやみにインデックスを増やさないように注意してください。設定値いいえ:インデックスを作成しないはい(重複あり):データの構成上、該当データが重複があり得る場合はい(重複あり):データの構成上、該当データが重複があり得ない場合

⑰Unicode圧縮

文字列データを圧縮するかどうかを設定できます。「はい」とした場合、ファイルサイズを抑えることができますが、どれくらい有効かは計り知れません。

⑱IME入力モード

入力するときの入力モードを選択できます。「コントロールなし」:IMEモードの切替なし、「オン」:全角を入力できる状態にする、「オフ」:半角入力できる状態にする、「使用不可」:IMEを無効にする、「ひらがな」:全角のひらがなを入力できる状態にします、「全角カタカナ」:全角のカタカナを入力できる状態にする、「半角カタカナ」:半角のカタカナを入力できる状態にする、「全角英数」:全角の英数を入力できる状態にする、「半角英数」:半角の英数を入力できる状態にします、「全ハングル」:全角のハングルを入力できる状態にする、「ハングル」:半角のハングルを入力できる状態にする。

⑲IME変換モード

漢字変換の際に、優先される変換モードを選択できます。・一般:通常の変換モード・地名/人名:地名や人名を入力するためのフィールドに設定します・話し言葉優先:話し言葉を入力する場合に指定します・無変換:ひらがなやカタカナを入力するフィールドに設定します

⑳ふりがな

ふりがなを設定するための漢字入力するフィールド側のフィールドプロパティのふりがな「・・・」のボタンをクリックします。ふりがなウィザードが起動されますので、ふりがなを設定するフィールドとふりがな文字種をしています。ふりがなを設定するフィールドを「フリガナ」、ふりがな文字種を「全角カタカナ」に指定します。社員名を入力し、ENTRキーを押下した単位でフリガナに自動的に変換されます。

㉑住所入力支援

住所を入力するフィールドのフィールドプロパティ「住所入力支援」の「・・・」ボタンをクリックしてください。郵便番号を入力するフィールドを「郵便番号」指定します。住所の入力するフィールド分割するかしないかを選択します。ここでは「分割なし」を選択し、住所を入力するフィールドを「住所」とし、「完了」をクリックします。データシートビューを開きまして、郵便番号に「1820021」と入力し「ENTR」キーを押下すると、自動的に「東京都調布市調布ヶ丘」が表示されました。 

㉒文字書式

データ型に「長いテキスト」を選択した場合のみ、指定が可能になります。テキスト形式リッチテキスト形式を指定すると、1文字ごとにフォント、サイズ、色、太字・斜体などをそれぞれ個別に設定することができます。インデントの設定、段落番号の設定、箇条書きの設定、蛍光ペンの使用などもできるようになります。下記のテーブルの備考に「リッチテキスト形式」を指定します。データシートビューを開くと、備考の1文字ごとに下線が引かれていたり、フォントが赤かったり、塗りつぶされていたりします。テキスト形式では、1文字でフォント色を変えても、全文字が変わってしまいます。

㉓文字配置

指定されたフィールドの文字の配置を指定します。・標準:テキストは左揃え、数値および日付は右揃えに配置されます・左:テキスト、数値、日付を左揃えで配置されます・中央:テキスト、数値、日付を中央揃えで配置されます・右:テキスト、数値、日付を右揃えで配置されます・均等割り付け:テキスト、数値、日付を文字間隔が均等に配置されます

㉔追加のみ

データ型に「長いテキスト」と「ハイパーリンク型」を指定したときのみ設定が可能です。フィールドプロパティの「追加のみ」を「はい」に指定することにより、ColumnHistory関数を利用することにより、それぞれの行(レコード)単位で値の更新履歴を取得することができます。プロパティの注釈が「このフィールドの履歴を収集しますか?」と表示されますが、ここは意味不明です。

㉕日付選択カレンダーの表示

データ型が日付/時刻型のみに指定できます。フィールドプロパティの「日付選択カレンダーの表示」に「日付」を指定します。データシートビューを表示し、入力日にカーソルを位置付けるとカレンダコントロールが表示され、カレンダによる日付入力が可能になります。「日付選択カレンダーの表示」に「なし」を設定するとカレンダコントロールは表示されません。 

基本となる5つのクエリ!選択・テーブル作成・追加・更新・削除クエリ!

基本の5つのクエリ

基本的なクエリを5つ紹介しておきましょう。①選択クエリ ➡ 抽出条件で抽出したり、特定のキーで集計し、結果を返します。②テーブル作成クエリ ➡ 新規でテーブルを作成したり、既存のテーブルにデータを作成します。③追加クエリ ➡ 既存のテーブルに対し、データを追加します。同一キーが存在する場合は、エラーとなります。④更新クエリ ➡ 既存のテーブルに対し、データの更新を行います。PRIMARY KEYが存在しないデータはエラーになり更新はできません。⑤削除クエリ ➡ 既存のテーブルに対し、データの削除を行います。PRIMARY KEYが存在しないデータはエラーになり削除はできません。これらを繋げたり組み合わせたりし、難しい処理を実施することも可能ですが、難しい処理を行うためにはいくつものクエリを組合わせて作ることになり階層が深くなってしまいます。そうなるとカスタマイズする側が大変なのでシンプルに作ることが大切です。誰にも処理を追えないような作りではなく誰でも理解できるようシンプルに作ることをお勧めします。Simple is Best!

■選択クエリ

では、実際に選択クエリを作成してみましょう。メニューバーの「作成」をクリックし、「クエリデザイン」を選択します。クエリ1というクエリのデザイン画面が表示され、選択クエリで入力するテーブル、クエリの選択画面が表示されますので対象のテーブルもしくはクエリを選択してください。Aテーブルを選択の上、「追加」ボタンをクリックします。Aテーブルの「商品コード」「商品名」「数量」「単価」をそれぞれダブルクリックすると下のフィールドの部分にダブルクリックされた各項目が表示されます。また「A」の部分をダブルクリックすると、全項目が対象になり、それをドラッグし、フィールド部分にドロップすれば、全項目が対象となり、フィールド部分に追加されます。このクエリに抽出条件を追加してみましょう。例えば、商品名の抽出条件に「ペン」と入力し、選択の左隣の「実行」もしくは、「表示」-「データシートビュー」をクリックします。「ペン」の商品名のデータが表示されます。

■テーブル作成クエリ

続いて、テーブル作成クエリを作成してみましょう。メニューバーより「作成」を選択し、「クエリデザイン」をクリックします。「テーブルの表示」画面が表示されますので、「閉じる」をクリックします。「選択」のすぐ横にあります「テーブル作成」をクリックすると、テーブル作成の画面が表示されますので新しいテーブル作成のテーブル名に既存にない「B」を指定し、OKボタンをクリックします。テーブルの表示をクリックし、テーブルAを選択します。テーブルAのフィールドをすべて選択し、ドラッグ&ドロップすると下のフィールドにテーブルAのフィールドが反映されます。「実行」をクリックすると、「2件のレコードが新規テーブルにコピーされます。」のメッセージボックスが表示されます。「はい」を選択すると、実行が処理されます。「いいえ」を選択すると、実行がキャンセルされます。「はい」を選択した場合、Bというテーブルが新しく作成され、Aテーブルと同じデータが格納されています。 

■追加クエリ

次に追加クエリを作成していきます。Bテーブルに商品コード「000009のり」を新しいレコードとして追加します。メニューバーの「作成」の「クエリデザイン」をクリックします。テーブルの表示で「B」テーブルを選択し、追加ボタンをクリックします。追加されたテーブルBのフィールドを全選択し、フィールドにドラッグ&ドロップするとフィールドが追加されます。「テーブルの作成」右隣の「追加」をクリックし、追加先のテーブル名に「A」を選択し、OKボタンをクリックする。下記「レコードの追加」の赤枠にフィールドが追加されます。商品コードの抽出条件に「000009」を指定します。更新前のテーブルA更新前のテーブルB「実行」をクリックするとテーブルAに商品コード「000009」が追加されたことがわかります。 

■更新クエリ

続いて、更新クエリを作成してみましょう。メニューバーより「作成」を選択し、「クエリデザイン」をクリックし、「テーブル表示」で「A」を選択し「追加」をクリックします。テーブルAの「商品コード」と「商品名」をダブルクリックし、下のフィールドに追加します。商品コードの抽出条件に「000009」、商品名のレコードの更新に「電卓」とします。テーブルAの商品コード「000009」の商品名を「電卓」に変更するということです。この更新クエリを実行します。テーブルAは、商品コード「000009」の商品名は「電卓」に更新されています。 

■削除クエリ

次に削除クエリを作成していきます。Aテーブルに追加された商品コード「000009」を削除していきます。他のクエリの同様に、メニューバーの作成をクリック、テーブルの表示でAテーブルを選択し、追加ボタンをクリックします。 メニューバーの下の「削除」をクリックし、フィールドに「商品コード」選択し、抽出条件に「000009」を指定します。上記を実行すると、下記メッセージを表示し「はい」をクリックすると処理が実行されます。更新後のテーブルAは以下のようになり、商品コード「000009」が削除されたことがわかります。

クエリの基本機能

 

テーブル指定

どのクエリでも指定するテーブルとフィールドの指定(赤枠内)がありますが、クエリ上に追加されたテーブルのフィールドはすべて指定可能になります。

並べ替え

並べ替えは、指定フィールドの昇順、降順を選択する場合に指定します。通常のSQLで言う「Order by」のことになります。余談ですが、テーブルは、どういう順番で格納されているわかりませんので「並べ替え」を指定しないと順番が突然変わる恐れがありますので出力系には必ず指定することをお勧めいたします。

表示

クエリの結果に該当フィールドが必要な場合は「表示」に☑し、必要なければチェックなしとします。下記のように抽出条件のみ必要で結果には必要ない場合は表示なしとします。

抽出条件

テーブルAの内容は以下になります。上記のクエリを実行すると次の出力結果になります。出力結果を見ると備考にデータがはいっているもののみ(抽出条件:備考<>"")を抽出したので下記のとおり「蛍光ペン」が抽出されています。

And条件

下記のように複数項目に抽出条件を同一の横列に入れるとAND条件になり、数量≩10 AND 単価<300に合致するデータを抽出します。抽出結果は以下の通りとなり、数量が10以上と単価が300未満の両方に合致したデータが抽出されます。

Or条件

下記のように複数項目に抽出条件を同一の横列ではなく一段下にするとOr条件になり、数量≩10 Or 単価≩300に合致するデータを抽出します。抽出結果は以下の通りとなり、数量が10以上と単価300以上のデータが抽出されます。 

↑このページのトップヘ