Ms-access-quick-guide
MS Access-概要
Microsoft Accessは、Microsoftのデータベース管理システム(DBMS)であり、リレーショナルMicrosoft Jetデータベースエンジンとグラフィカルユーザーインターフェイスおよびソフトウェア開発ツールを組み合わせています。 これは、Professional Edition以上のエディションに含まれるMicrosoft Officeアプリケーションスイートのメンバーです。
- Microsoft Accessは、マイクロソフトの全体的なデータ管理製品戦略のほんの一部です。
- Access Jetデータベースエンジンに基づいて、独自の形式でデータを保存します。
- リレーショナルデータベースと同様に、Microsoft Accessでは関連情報を簡単にリンクすることもできます。 たとえば、顧客および注文データ。 ただし、Access 2013は、いくつかの強力な接続機能を備えているため、他のデータベース製品も補完します。
- 他のアプリケーションやデータベースに保存されているデータをインポートまたは直接リンクすることもできます。
- その名前が示すように、Accessは、デスクトップ、サーバー、ミニコンピューター、またはメインフレームにある多くのSQL(Structured Query Language)データベースを含む、多くの一般的なPCデータベースプログラムを含む他のソースからのデータと、インターネットまたはイントラネットWebサーバー。
- Accessは、他の多くのデータベースファイル構造を含む、さまざまな他のデータ形式を理解して使用することもできます。
- ワープロファイル、スプレッドシート、またはデータベースファイルに直接データをエクスポートおよびインポートできます。
- Accessは、SQL Server、Oracle、DB2など、Open Database Connectivity(ODBC)標準をサポートする最も一般的なデータベースで動作します。
- ソフトウェア開発者は、Microsoft Accessを使用してアプリケーションソフトウェアを開発できます。
Microsoft Accessは、データベースと呼ばれる情報を保存します。 MS Accessを使用するには、次の4つの手順に従う必要があります-
- データベースの作成-Microsoft Accessデータベースを作成し、保存するデータの種類を指定します。
- データ入力-データベースの作成後、営業日ごとのデータをAccessデータベースに入力できます。
- クエリ-これは基本的にデータベースから情報を取得するプロセスを説明するための空想用語です。
- レポート(オプション)-データベースからの情報は、アクセスレポートに印刷できる素敵なプレゼンテーションにまとめられています。
建築
- Accessは、名前をオブジェクトにできるものをすべて呼び出します。 Accessデスクトップデータベース内の主なオブジェクトは、テーブル、クエリ、フォーム、レポート、マクロ、データマクロ、およびモジュールです。
- デスクトップコンピューターで他のデータベースシステムを使用したことがある場合は、データベースという用語は、データを保存するファイルのみを指すのに使用されることがあります。
- ただし、Accessでは、デスクトップデータベース(.accdb)には、データの使用を自動化するために定義するオブジェクトなど、保存されたデータに関連するすべての主要なオブジェクトも含まれます。
MS Access-RDBMS
Microsoft Accessは、そのレイアウトとナビゲーションの側面に関する限り、他のMicrosoft Office製品のルックアンドフィールを備えていますが、MS Accessはデータベースであり、より具体的にはリレーショナルデータベースです。
- MS Access 2007より前のファイル拡張子は。mdb *でしたが、MS Access 2007では、拡張子は。accdb *拡張子に変更されました。
- Accessの初期バージョンはaccdb拡張機能を読み取ることができませんが、MS Access 2007以降のバージョンは以前のバージョンのAccessを読み取って変更できます。
- Accessデスクトップデータベース(.accdbまたは.mdb)は、完全に機能するRDBMSです。
- 大量のデータを管理するために必要なすべてのデータ定義、データ操作、およびデータ制御機能を提供します。
- Accessデスクトップデータベース(.accdbまたは.mdb)は、単一のワークステーションでスタンドアロンRDBMSとして使用するか、ネットワーク全体で共有クライアント/サーバーモードで使用できます。
- デスクトップデータベースは、会社のイントラネットのWebページに表示されるデータのデータソースとしても機能します。
- Accessデスクトップデータベースを使用してアプリケーションを構築する場合、AccessはRDBMSです。
データ定義
データ定義とは何かを理解しましょう−
- ドキュメントまたはスプレッドシートでは、通常、ドキュメントの内容またはスプレッドシートの各セルを完全に自由に定義できます。
- ドキュメントには、テキストの段落、表、グラフ、または複数のフォントで表示されるデータの複数の列を含めることができます。
- スプレッドシートでは、上部にテキストデータを配置して、印刷または表示する列ヘッダーを定義できます。また、行の機能に応じて、同じ列内にさまざまな数値形式を含めることができます。
- RDBMSを使用すると、所有するデータの種類とデータの保存方法を定義できます。
- 通常、RDBMSがデータの整合性を確保するために使用できるルールを定義することもできます。
- たとえば、検証ルールにより、ユーザーが誤って数字を含むフィールドにアルファベット文字を保存できないようにすることができます。
データ操作
RDBMSでのデータの操作は、ワードプロセッサまたはスプレッドシートプログラムでのデータの操作とは大きく異なります。
- ワードプロセッシングドキュメントでは、表形式のデータを含めて、ドキュメント内のデータに対して限られた機能セットを実行できます。
- また、元のドキュメント内のテキスト文字列を検索し、ActiveXコントロールを使用して、他のアプリケーションのテーブル、チャート、または画像を含めることもできます。
- スプレッドシートでは、一部のセルに必要な結果を決定する関数が含まれ、他のセルでは、関数のソース情報を提供するデータを入力します。
- 単一のテーブルで情報を検索したり、複数の関連テーブルで複雑な検索を要求したりできます。
- 単一のコマンドで単一のフィールドまたは多数のレコードを更新できます。
- RDBMSコマンドを使用するプログラムを作成して、表示するデータをフェッチし、ユーザーがデータを更新できるようにすることができます。
Accessは強力なSQLデータベース言語を使用して、テーブル内のデータを処理します。 SQLを使用すると、おそらく多くのテーブルからのデータを含む、特定の問題を解決するために必要な情報のセットを定義できます。
データ管理
スプレッドシートとワードプロセッシングドキュメントは、シングルユーザーの問題を解決するのに最適ですが、複数の人がデータを共有する必要がある場合は使用が困難です。
- 情報を他の人と共有する必要がある場合、RDBMSを使用すると、複数のユーザーがデータを読み取ったり更新したりできる柔軟性が得られます。
- データ共有を可能にするように設計されたRDBMSは、2人が同じデータを同時に変更できないようにする機能も提供します。
- 最適なシステムでは、変更(トランザクションとも呼ばれる)をグループ化して、データにすべての変更が表示されるようにすることもできます。
- また、注文のすべてを入力するまで、他の誰も注文のどの部分も表示できないようにしたい場合があります。
- Accessデータを他のユーザーと共有できるため、さまざまなユーザーが表示または更新できるものに制限を設定する必要がある場合があります。
MS Access-オブジェクト
MS Accessは、「オブジェクト」を使用して、ユーザーが情報をリストおよび整理し、特別に設計されたレポートを準備できるようにします。 データベースを作成すると、Accessはテーブル、クエリ、フォーム、レポート、マクロ、およびモジュールを提供します。 Accessのデータベースは多くのオブジェクトで構成されていますが、主なオブジェクトは次のとおりです-
- テーブル
- 問い合わせ
- フォーム
- レポート
これらのオブジェクトを組み合わせることで、データを入力、保存、分析、およびコンパイルできます。 以下は、Accessデータベースの主要なオブジェクトの概要です。
表
テーブルは、データの定義と保存に使用されるオブジェクトです。 新しいテーブルを作成するとき、Accessは列見出しとも呼ばれるフィールドを定義するように求めます。
- 各フィールドには、一意の名前とデータ型が必要です。
- テーブルには、名前や住所などのさまざまな種類のデータを格納するフィールドまたは列、および顧客や従業員などに関するすべての情報など、サブジェクトの特定のインスタンスに関するすべての情報を収集するレコードまたは行が含まれます。
- 主キー、各レコードに一意の値を持つ1つ以上のフィールド、および各テーブルの1つ以上のインデックスを定義して、データをより迅速に取得できます。
問い合わせ
1つ以上のテーブルのデータのカスタムビューを提供するオブジェクト。 クエリは、1つ以上のテーブルからデータを検索してコンパイルする方法です。
- クエリの実行は、データベースの詳細な質問をするようなものです。
- Accessでクエリを作成すると、特定の検索条件を定義して、必要なデータを正確に見つけることができます。
- Accessでは、サンプルファシリティごとにグラフィカルクエリを使用するか、構造化クエリ言語(SQL)ステートメントを記述してクエリを作成できます。
- クエリを定義して、データを選択、更新、挿入、または削除できます。
- 1つ以上の既存のテーブルのデータから新しいテーブルを作成するクエリを定義することもできます。
Form
フォームは、主にデータの入力や表示、またはアプリケーション実行の制御のために設計されたデスクトップデータベース内のオブジェクトです。 フォームを使用して、アプリケーションがクエリまたはテーブルから抽出するデータの表示をカスタマイズします。
- フォームは、レコードの入力、変更、表示に使用されます。
- フォームが頻繁に使用される理由は、データを正しく入力するための簡単な方法であるためです。
- Accessのフォームに情報を入力すると、データベース設計者が1つまたは複数の関連テーブルに入れたい場所に正確にデータが移動します。
報告書
レポートは、選択したデータをフォーマット、計算、印刷、および要約するために設計されたデスクトップデータベースのオブジェクトです。
- レポートを印刷する前に画面で表示できます。
- フォームが入力用である場合、レポートは出力用です。
- レポートは、名前と住所のリスト、期間の財務サマリー、または宛名ラベルのセットのいずれであっても、印刷する予定があります。
- レポートは、データベースのコンポーネントを読みやすい形式で表示できるため便利です。
- レポートの外観をカスタマイズして、視覚的にアピールすることもできます。
- Accessでは、任意のテーブルまたはクエリからレポートを作成できます。
その他のMS Accessオブジェクト
ここで、他のMS Accessオブジェクトを見てみましょう。
マクロ
このオブジェクトは、定義されたイベントに応じてAccessに実行させる1つ以上のアクションの構造化された定義です。 アクセスマクロは、何らかの仕事をするためのスクリプトです。 たとえば、レポートを開くボタンを作成するには、OpenReportアクションを起動するマクロを使用できます。
- マクロに1つ以上のアクションを実行またはスキップするタイミングを指定する単純な条件をマクロに含めることができます。
- マクロを使用して、クエリを開いて実行したり、テーブルを開いたり、レポートを印刷または表示したりできます。
- マクロ内から他のマクロまたはVisual Basicプロシージャを実行することもできます。
- データマクロは、新しいレコードの挿入、既存のレコードの編集、レコードの削除などのテーブルイベントに直接関連付けることができます。
- Webアプリのデータマクロは、他のデータマクロまたはマクロオブジェクトから呼び出すことができるスタンドアロンオブジェクトにすることもできます。
モジュール
モジュールは、Visual Basicを使用してコーディングするカスタムプロシージャを含むデスクトップデータベース内のオブジェクトです。 モジュールは、より個別のアクションフローを提供し、エラーをトラップできるようにします。
- マクロで実行できることはすべてモジュールでも実行できますが、各アクションに必要なものを要求するマクロインターフェイスは取得できません。
- モジュールははるかに強力であり、マクロにはエラー処理を含めることができないため、マルチユーザー環境向けのコードを作成する場合には不可欠です。
- モジュールは、アプリケーションのどこからでも呼び出すことができる関数を含むスタンドアロンオブジェクトにすることも、フォームまたはレポートに直接関連付けて、関連するフォームまたはレポートのイベントに応答することもできます。
MS Access-データベースの作成
この章では、Accessを起動してデータベースを作成する基本プロセスについて説明します。 この章では、テンプレートを使用してデスクトップデータベースを作成する方法と、データベースをゼロから構築する方法についても説明します。
テンプレートからデータベースを作成するには、まずMS Accessを開く必要があります。次の画面が表示され、さまざまなAccessデータベーステンプレートが表示されます。
考えられるすべてのデータベースを表示するには、下にスクロールするか、検索ボックスを使用することもできます。
検索ボックスにプロジェクトを入力して、Enterキーを押します。 プロジェクト管理に関連するデータベーステンプレートが表示されます。
最初のテンプレートを選択します。 このテンプレートに関連する詳細情報が表示されます。
要件に関連するテンプレートを選択したら、[ファイル名]フィールドに名前を入力します。必要に応じて、ファイルの別の場所を指定することもできます。
次に、作成オプションを押します。 次のスクリーンショットに示すように、Accessはそのデータベーステンプレートをダウンロードし、新しい空のデータベースを開きます。
ここで、左側のナビゲーションペインをクリックすると、このデータベースに付属する他のすべてのオブジェクトが表示されます。
[プロジェクトナビゲーション]をクリックし、メニューで[オブジェクトタイプ]を選択します。
これで、テーブル、クエリなど、すべてのオブジェクトタイプが表示されます。
空のデータベースを作成
データベースの要件は非常に限定的であるため、既存のテンプレートを使用および変更するには、データベースを最初から作成するよりも多くの作業が必要になる場合があります。 このような場合、空のデータベースを使用します。
- ステップ1 *-MS Accessを開くことから始めましょう。
- ステップ2 *-空のデスクトップデータベースを選択します。 名前を入力し、[作成]ボタンをクリックします。
- ステップ3 *-Accessは新しい空のデータベースを作成し、完全に空のテーブルを開きます。
MS Access-データ型
テーブル内のすべてのフィールドにはプロパティがあり、これらのプロパティはフィールドの特性と動作を定義します。 フィールドの最も重要なプロパティは、そのデータ型です。 フィールドのデータ型によって、保存できるデータの種類が決まります。 MS Accessは、それぞれ特定の目的を持つさまざまなタイプのデータをサポートしています。
- データ型は、ユーザーが任意のフィールドに格納できる値の種類を決定します。
- 各フィールドには、単一のデータ型のみで構成されるデータを格納できます。
一般的なMicrosoft Accessデータベースで使用される最も一般的なデータ型の一部を以下に示します。
Type of Data | Description | Size |
---|---|---|
Short Text | Text or combinations of text and numbers, including numbers that do not require calculating (e.g. phone numbers). | Up to 255 characters. |
Long Text | Lengthy text or combinations of text and numbers. | Up to 63, 999 characters. |
Number | Numeric data used in mathematical calculations. | 1, 2, 4, or 8 bytes (16 bytes if set to Replication ID). |
Date/Time | Date and time values for the years 100 through 9999. | 8 bytes |
Currency | Currency values and numeric data used in mathematical calculations involving data with one to four decimal places. | 8 bytes |
AutoNumber | A unique sequential (incremented by 1) number or random number assigned by Microsoft Access whenever a new record is added to a table. | 4 bytes (16 bytes if set to Replication ID). |
Yes/No | Yes and No values and fields that contain only one of two values (Yes/No, True/False, or On/Off). | 1 bit. |
- 以前のバージョンのAccessを使用している場合、これらの2つのデータ型の違いに気付くでしょう。
- Access 2013には、ショートテキストとロングテキストの2つのデータタイプがあります。 Accessの以前のバージョンでは、これらのデータ型はテキストおよびメモと呼ばれていました。
- テキストフィールドはショートテキストと呼ばれ、メモフィールドはロングテキストと呼ばれます。
Accessで選択できる他のより特殊なデータ型の一部を次に示します。
Data Types | Description | Size |
---|---|---|
Attachment | Files, such as digital photos. Multiple files can be attached per record. This data type is not available in earlier versions of Access. | Up to about 2 GB. |
OLE objects | OLE objects can store pictures, audio, video, or other BLOBs (Binary Large Objects) | Up to about 2 GB. |
Hyperlink | Text or combinations of text and numbers stored as text and used as a hyperlink address. | Up to 8,192 (each part of a Hyperlink data type can contain up to 2048 characters). |
Lookup Wizard |
The Lookup Wizard entry in the Data Type column in the Design view is not actually a data type. When you choose this entry, a wizard starts to help you define either a simple or complex lookup field. 単純なルックアップフィールドは、別のテーブルまたは値リストの内容を使用して、行ごとに1つの値の内容を検証します。 複雑なルックアップフィールドを使用すると、各行に同じデータ型の複数の値を格納できます。 |
Dependent on the data type of the lookup field. |
Calculated | You can create an expression that uses data from one or more fields. You can designate different result data types from the expression. | You can create an expression that uses data from one or more fields. You can designate different result data types from the expression. |
これらはすべて、Microsoft Accessテーブルにフィールドを作成するときに選択できるさまざまなデータ型です。
MS Access-テーブルの作成
データベースを作成するとき、データをテーブルに保存します。 他のデータベースオブジェクトはテーブルに大きく依存しているため、すべてのテーブルを作成してから他のオブジェクトを作成することで、常にデータベースの設計を開始する必要があります。 テーブルを作成する前に、要件を慎重に検討し、必要なすべてのテーブルを決定します。
次の表に示すように、従業員に関する基本的な連絡先情報を保存する最初のテーブルを作成してみましょう-
Field Name | Data Type |
---|---|
EmployeelD | AutoNumber |
FirstName | Short Text |
LastName | Short Text |
Address1 | Short Text |
Address2 | Short Text |
City | Short Text |
State | Short Text |
Zip | Short Text |
Phone | Short Text |
Phone Type | Short Text |
これらすべてのフィールドのデータ型として短いテキストを使用し、Accessで空のデータベースを開きます。
これが私たちが物事をやめたところです。 データベースを作成し、Accessが自動的にこのテーブルの1つのデータシートビューを開きました。
[フィールド]タブに移動すると、それも自動的に作成されます。 AutoNumberフィールドであるIDは一意の識別子として機能し、このテーブルの主キーです。
IDフィールドは既に作成されているため、条件に合わせて名前を変更します。 これは従業員テーブルであり、従業員の一意の識別子になります。
リボンの[名前とキャプション]オプションをクリックすると、次のダイアログボックスが表示されます。
このフィールドの名前を EmployeeID に変更して、このテーブルにより具体的にします。 必要に応じてその他のオプション情報を入力し、[OK]をクリックします。
これで、従業員IDフィールドにキャプションEmployee IDがあります。 これは自動的に自動番号に設定されるため、実際にデータ型を変更する必要はありません。
- クリックして追加*をクリックして、さらにフィールドを追加しましょう。
フィールドとして Short Text を選択します。 短いテキストを選択すると、Accessはそのフィールド名を自動的に強調表示し、フィールド名を入力するだけです。
フィールド名として FirstName と入力します。 同様に、次のスクリーンショットに示すように、すべての必須フィールドを追加します。
すべてのフィールドを追加したら、[保存]アイコンをクリックします。
[名前を付けて保存]ダイアログボックスが表示され、テーブルのテーブル名を入力できます。
[テーブル名]フィールドにテーブルの名前を入力します。 ここで、 tbl プレフィックスはテーブルを表します。 [OK]をクリックすると、ナビゲーションペインにテーブルが表示されます。
テーブルデザインビュー
*Datasheet View* を使用して既に1つのテーブルを作成しました。 *Table Design View* を使用して別のテーブルを作成します。 このテーブルに次のフィールドを作成します。 これらのテーブルには、さまざまな書籍プロジェクトの情報の一部が保存されます。
Field Name | Data Type |
---|---|
Project ID | AutoNumber |
ProjectName | Short Text |
ManagingEditor | Short Text |
Author | Short Text |
PStatus | Short Text |
Contracts | Attachment |
ProjectStart | Date/Time |
ProjectEnd | Date/Time |
Budget | Currency |
ProjectNotes | Long Text |
[作成]タブに移動しましょう。
テーブルグループで、[テーブル]をクリックすると、これがデータシートビューとはまったく異なるように見えることがわかります。 このビューでは、*フィールド名*と*データタイプ*を並べて見ることができます。
ここで ProjectID をこのテーブルのプライマリキーにする必要があるため、 ProjectID を選択し、リボンの Primary Key オプションをクリックします。
そのフィールドの横に表示される小さなキーアイコンを見ることができます。 これは、フィールドがテーブルの主キーの一部であることを示しています。
このテーブルを保存して、このテーブルに名前を付けましょう。
[OK]をクリックすると、データシートビューでこのテーブルがどのように見えるかを確認できます。
リボンの左上にあるデータシートビューボタンをクリックします。
このテーブルまたは特定のフィールドに変更を加えたい場合、デザインビューに戻って変更する必要はありません。 データシートビューから変更することもできます。 次のスクリーンショットに示すように、PStatusフィールドを更新しましょう。
[OK]をクリックすると、変更が表示されます。
MS Access-データの追加
Accessデータベースは、Microsoft Office Word文書やMicrosoft Office PowerPointと同じ意味でのファイルではありません。 代わりに、Accessデータベースは、テーブル、フォーム、レポート、クエリなどのオブジェクトのコレクションです。 データベースが適切に機能するためには、連携する必要があります。 これで、データベースに必要なすべてのフィールドとフィールドプロパティを含む2つのテーブルが作成されました。 Access内のテーブルのデータを表示、変更、挿入、削除するには、テーブルのデータシートビューを使用できます。
- データシートは、特別な書式設定なしで行と列のデータを見る簡単な方法です。
- 新しいWebテーブルを作成するたびに、Accessは自動的に2つのビューを作成し、データ入力にすぐに使用を開始できます。
- データシートビューで開いているテーブルはExcelワークシートに似ており、1つ以上のフィールドにデータを入力または貼り付けることができます。
- データを明示的に保存する必要はありません。 Accessは、カーソルを同じ行の新しいフィールドに移動したとき、またはカーソルを別の行に移動したときに、テーブルへの変更をコミットします。
- 既定では、Accessデータベースのフィールドは、テキストや数字などの特定の種類のデータを受け入れるように設定されています。 フィールドが受け入れるように設定されているデータのタイプを入力する必要があります。 そうしないと、Accessはエラーメッセージを表示します-
作成したAccessデータベースを開いて、テーブルにデータを追加しましょう。
リボンの[表示]→[データシート]の[表示]オプションを選択し、次のスクリーンショットに示すようにデータを追加します。
同様に、次のスクリーンショットに示すように、2番目のテーブルにいくつかのデータを追加します。
新しいデータの挿入と既存のデータの更新が、スプレッドシートでの作業としてデータシートビューで非常に簡単であることがわかります。 ただし、データを削除する場合は、次のスクリーンショットに示すように、最初に行全体を選択する必要があります。
次に、削除ボタンを押します。 これにより、確認メッセージが表示されます。
[はい]をクリックすると、選択したレコードが削除されたことがわかります。
MS Access-クエリデータ
クエリは、データ結果とデータに対するアクションの要求です。 クエリを使用して、簡単な質問に答えたり、計算を実行したり、異なるテーブルのデータを結合したり、テーブルデータを追加、変更、削除したりすることもできます。
- テーブルのサイズが大きくなると、数十万のレコードを持つことができ、ユーザーがそのテーブルから特定のレコードを選択することができなくなります。
- クエリを使用すると、テーブルのデータにフィルターを適用できるため、必要な情報のみを取得できます。
- テーブルからデータを取得するため、または計算を行うために使用するクエリは、選択クエリと呼ばれます。
- データを追加、変更、または削除するクエリは、アクションクエリと呼ばれます。
- クエリを使用して、フォームまたはレポートのデータを提供することもできます。
- 適切に設計されたデータベースでは、フォームまたはレポートを使用して表示するデータは、多くの場合、いくつかの異なるテーブルにあります。
- クエリの扱いにくい部分は、実際に使用する前に、クエリの作成方法を理解する必要があることです。
選択クエリを作成
テーブル内の特定のフィールドのデータのみをレビューする場合、または複数のテーブルのデータを同時にレビューする場合、または特定の条件でデータベース化されたデータのみを表示する場合は、選択*クエリを使用できます。 ここで、 *tblEmployees テーブルから情報を取得する簡単なクエリを作成する簡単な例を見てみましょう。 データベースを開き、[作成]タブをクリックします。
[クエリデザイン]をクリックします。
[テーブル]タブの[テーブルの表示]ダイアログで、[ tblEmployees ]テーブルをダブルクリックし、ダイアログボックスを*閉じる*します。
tblEmployeesテーブルで、クエリの結果として表示するすべてのフィールドをダブルクリックします。 次のスクリーンショットに示すように、これらのフィールドをクエリデザイングリッドに追加します。
[デザイン]タブの[実行]をクリックし、[実行]をクリックします。
クエリが実行され、クエリで指定されたフィールドのデータのみが表示されます。
MS Access-クエリ基準
クエリ条件は、Accessデータベースから特定のアイテムを取得するのに役立ちます。 入力したすべての条件に一致するアイテムは、クエリ結果に表示されます。 フィールドの値に基づいてクエリの結果を制限する場合は、クエリ条件を使用します。
- クエリ条件は、Accessがクエリフィールド値と比較して、各値を含むレコードを含めるかどうかを判断する式です。
- 一部の基準は単純で、基本的な演算子と定数を使用します。 他のものは複雑で、関数、特別な演算子を使用し、フィールド参照を含みます。
- クエリに条件を追加するには、デザインビューでクエリを開く必要があります。
- 次に、基準を指定するフィールドを特定します。
例
クエリで条件を使用する簡単な例を見てみましょう。 最初にAccessデータベースを開き、[作成]タブに移動して[クエリデザイン]をクリックします。
[テーブルの表示]ダイアログの[テーブル]タブで、 tblEmployees テーブルをダブルクリックして、ダイアログボックスを閉じます。
次のスクリーンショットに示すように、EmployeeID、FirstName、LastName、JobTitle、Emailなどのフィールドをクエリグリッドに追加します。
クエリを実行すると、これらのフィールドのみがクエリ結果として表示されます。
JobTitleがマーケティングコーディネーターである人だけを表示したい場合は、その基準を追加する必要があります。 もう一度クエリデザインに移動し、JobTitleの[条件]行に「マーケティングコーディネーター」と入力します。
クエリを再度実行すると、マーケティングコーディネーターの役職のみが取得されます。
複数のフィールドに基準を追加する場合は、複数のフィールドに基準を追加します。 「マーケティングコーディネーター」と「会計アシスタント」のデータのみを取得したいとします。次のスクリーンショットに示すように、OR行演算子を指定できます-
クエリを再度実行すると、次の結果が表示されます。
*AND* 演算子の機能を使用する必要がある場合は、[基準]行で他の条件を指定する必要があります。 すべての経理アシスタントを取得したいが、姓が「Pollard」であるマーケティングコーディネーターのタイトルのみを取得したいとします。
クエリを再度実行すると、次の結果が表示されます。
MS Access-アクションクエリ
MS Accessおよびその他のDBMSシステムでは、クエリはデータを表示するだけではなく、データベース内のデータに対して実際にさまざまなアクションを実行できます。
- アクションクエリは、一度に複数のレコードを追加、変更、または削除できるクエリです。
- 追加の利点は、実行する前にAccessでクエリ結果をプレビューできることです。
- Microsoft Accessは、4種類のアクションクエリを提供します-
- 追加
- 更新
- 削除する
- メイクテーブル *アクションクエリを元に戻すことはできません。 更新クエリを使用して更新するテーブルのバックアップを作成することを検討する必要があります。
追加クエリを作成する
追加クエリを使用して、1つ以上のテーブルからデータを取得し、そのデータを別のテーブルに追加できます。* tblEmployees *テーブルからデータを追加する新しいテーブルを作成しましょう。 これは、デモ用の一時テーブルになります。
*TempEmployees* と呼びましょう。これには、次のスクリーンショットに示すフィールドが含まれています。
[テーブル]タブの[テーブルの表示]ダイアログボックスで、[ tblEmployees ]テーブルをダブルクリックして、ダイアログボックスを閉じます。 表示するフィールドをダブルクリックします。
最初にデータを表示するクエリを実行してみましょう。
次に、クエリデザインに戻り、[追加]ボタンを選択します。
[クエリの種類]で、[追加]オプションボタンを選択します。 これにより、次のダイアログボックスが表示されます。
ドロップダウンリストからテーブル名を選択し、[OK]をクリックします。
クエリグリッドでは、 Append To 行で、 Address1 を除くすべてのフィールドがデフォルトで選択されていることがわかります。 これは、そのAddress1フィールドが TempEmployee テーブルで使用できないためです。 そのため、ドロップダウンリストからフィールドを選択する必要があります。
[アドレス]フィールドを見てみましょう。
クエリを実行すると、次の確認メッセージが表示されます。
[はい]をクリックして、アクションを確認します。
*TempEmployee* テーブルを開くと、すべてのデータがtblEmployeesからTempEmployeeテーブルに追加されていることがわかります。
MS Access-クエリの作成
この章でクエリを作成する方法を理解しましょう。
更新クエリを作成する
更新クエリを使用してテーブル内のデータを変更できます。また、更新クエリを使用して基準を入力し、更新する行を指定できます。 更新クエリを使用すると、更新を実行する前に更新されたデータを確認できます。 もう一度[作成]タブに移動し、[クエリデザイン]をクリックします。
[テーブル]タブの[テーブルの表示]ダイアログボックスで、 tblEmployees テーブルをダブルクリックし、ダイアログボックスを閉じます。
[デザイン]タブの[クエリの種類]グループで、[更新]をクリックし、値を更新するフィールドをダブルクリックします。 「Rex」のFirstNameを「Max」に更新するとします。
*Design* グリッドの *Update* 行に更新された値を入力し、Criteria行に更新したい元の値を追加してクエリを実行します。 これにより、確認メッセージが表示されます。
[はい]をクリックして、[データシートビュー]に移動すると、最初のレコードが表示されます。FirstNameは「最大」に更新されました。
削除クエリを作成する
削除クエリを使用してテーブルからデータを削除できます。また、削除クエリを使用して基準を入力し、削除する行を指定できます。 削除クエリを使用すると、削除を実行する前に削除される行を確認できます。 もう一度[作成]タブに移動し、[クエリデザイン]をクリックします。
[テーブルの表示]ダイアログボックスの[テーブル]タブで、 tblEmployees テーブルをダブルクリックして、ダイアログボックスを閉じます。
[デザイン]タブの[クエリタイプ]グループで、[削除]をクリックし、[従業員ID]をダブルクリックします。
デザイングリッドの[条件]行に、11と入力します。 ここでは、EmployeeIDが11の従業員を削除します。
クエリを実行してみましょう。 このクエリは確認メッセージを表示します。
[はい]をクリックしてデータシートビューに移動すると、指定した従業員レコードが削除されたことがわかります。
テーブル作成クエリを作成する
テーブル作成クエリを使用して、他のテーブルに格納されているデータから新しいテーブルを作成できます。 もう一度[作成]タブに移動して、[クエリデザイン]をクリックします。
[テーブル]タブの[テーブルの表示]ダイアログボックスで、 tblEmployees テーブルをダブルクリックして、ダイアログボックスを閉じます。
別のテーブルにコピーするすべてのフィールドを選択します。
[クエリの種類]で、[テーブルの作成]オプションボタンを選択します。
次のダイアログボックスが表示されます。 作成する新しいテーブルの名前を入力し、[OK]をクリックします。
クエリを実行します。
次のメッセージが表示されます。
[はい]をクリックすると、ナビゲーションペインに新しいテーブルが作成されます。
MS Access-パラメータークエリ
クエリの最も良い点は、同じクエリを何度も保存して実行できることですが、条件を変更するだけで同じクエリを何度も実行すると、クエリがパラメータを受け入れると見なされる場合があります。
- 特定のクエリのバリエーションを頻繁に実行する場合は、パラメータクエリの使用を検討してください
- パラメータークエリは、クエリが実行される前にエンドユーザーに条件を指定するように促す情報を対話形式で取得します。
- パラメーターが受け入れるデータのタイプを指定することもできます。
- 任意のパラメーターのデータ型を設定できますが、数値、通貨、または日付/時刻データのデータ型を設定することが特に重要です。
- パラメーターが受け入れるデータ型を指定すると、通貨が必要なときにテキストを入力するなど、ユーザーが間違ったタイプのデータを入力すると、より有用なエラーメッセージが表示されます。
- パラメーターがテキストデータを受け入れるように設定されている場合、入力はテキストとして解釈され、エラーメッセージは表示されません。
例
パラメータークエリを作成して、簡単な例を見てみましょう。 データベースを開き、[テーブルの作成]タブで[クエリデザイン]を選択します。
*tblProjects* をダブルクリックして、 *Show* ダイアログボックスを閉じます。
次のスクリーンショットに示すように、クエリ結果として表示するフィールドを選択します。
クエリデザイングリッドの[ProjectStart]列の[条件]行に、「 [プロジェクト開始データを入力] 」と入力します。 文字列 [プロジェクトの開始データを入力] は、パラメータプロンプトです。 角括弧は、クエリに入力を要求することを示し、テキストは「プロジェクトの開始データを入力してください」というパラメータプロンプトが表示されます。
クエリを実行すると、次のプロンプトが表示されます。
次の日付を入力してみましょう。
確認のために「OK」をクリックします。
その結果、2007年2月1日に開始されたプロジェクトの詳細が表示されます。 デザインビューに移動して、クエリを再度実行します。
上記のスクリーンショットのように日付を入力し、[OK]をクリックします。 5/1/2008に開始されたプロジェクトの詳細が表示されます。
MS Access-代替基準
クエリには多くの利点があります。 同じクエリを何度も保存して実行できますが、多くの場合、代替条件を追加する必要があります。
次の2つの方法で代替基準を追加できます-
- OR演算子を使用して、2つの基準セットを組み合わせることができます。
- クエリデザイングリッドを使用することもできますが、同じ行に条件を指定する代わりに、複数の行に分ける必要があります。
例
代替基準の簡単な例を見てみましょう。 データベースを開き、[作成]タブで[クエリデザイン]を選択します。
*tblEmployee* をダブルクリックして、[テーブルの表示]ダイアログボックスを閉じます。
クエリ結果として表示するすべてのフィールドをダブルクリックします。
*LastName* フィールドの異なる行で代替基準が指定されていることがわかります。 このクエリを実行すると、姓が *Pollard* または *Manning* である従業員が表示されます。 このクエリを実行してみましょう。
代替基準により、2人の従業員のみが取得されていることがわかります。
複数のフィールドに代替条件を追加する場合は、すべてのフィールドに異なる行を使用する必要があります。 ここで、姓が Pollard または Manning であるか、役職が Accounting Assistant である従業員の情報を取得できる別の基準を追加しましょう。
このクエリを実行してみましょう。
次の結果が表示されます。
MS Access-データの関連付け
この章では、関連データの基本を理解します。 異なるデータ間の関係を説明する前に、それが必要な理由を確認しましょう。 すべてが正規化に戻ります。
正規化
データベースの正規化、または単に正規化は、データの冗長性を最小限に抑えるために、リレーショナルデータベースの列(属性)とテーブル(関係)を整理するプロセスです。 これは、データを複数のテーブルに分割して、全体的なパフォーマンス、整合性、および寿命を改善するプロセスです。
- 正規化は、データベース内のデータを整理するプロセスです。
- これには、データの保護と、冗長性と一貫性のない依存関係を排除してデータベースの柔軟性を高めるように設計されたルールに従って、テーブルを作成し、それらのテーブル間の関係を確立することが含まれます。
データを含む次の表を見てみましょうが、問題はこのデータが非常に冗長であるため、データ入力中にタイプミスや一貫性のないフレージングが発生する可能性が高くなることです。
CustID | Name | Address | Cookie | Quantity | Price | Total |
---|---|---|---|---|---|---|
1 | Ethel Smith | 12 Main St, Arlington, VA 22201 S | Chocolate Chip | 5 | $2.00 | $10.00 |
2 | Tom Wilber | 1234 Oak Dr., Pekin, IL 61555 | Choc Chip | 3 | $2.00 | $6.00 |
3 | Ethil Smithy | 12 Main St., Arlington, VA 22201 | Chocolate Chip | 5 | $2.00 | $10.00 |
この問題を解決するには、次の3つの表に示すように、データを再構築し、複数のテーブルに分割して、これらの冗長性の一部を排除する必要があります。
ここでは、Customers用のテーブルが1つあり、2 ^ nd ^テーブルはOrders用、3 ^ rd ^テーブルはCookie用です。
ここでの問題は、データを複数のテーブルに分割するだけでは、あるテーブルのデータが別のテーブルのデータにどのように関係しているかを知るのに役立たないことです。 複数のテーブルのデータを接続するには、 Orders テーブルに外部キーを追加する必要があります。
関係の定義
リレーションシップは、キー列のデータを一致させることで機能します。通常、両方のテーブルで同じ名前の列になります。 ほとんどの場合、関係は1つのテーブルの主キーと一致します。これにより、各行に一意の識別子が提供され、他のテーブルの外部キーにエントリがあります。 テーブル間の関係には3つのタイプがあります。 作成される関係のタイプは、関連する列の定義方法によって異なります。
ここで、3種類の関係を見てみましょう-
1対多の関係
1対多の関係は、最も一般的なタイプの関係です。 このタイプの関係では、テーブルAの行はテーブルBの多くの一致する行を持つことができますが、テーブルBの行はテーブルAの一致する行を1つだけ持つことができます。
たとえば、CustomersテーブルとOrdersテーブルには1対多の関係があります。各顧客は多くの注文を出すことができますが、各注文は1人の顧客からのみ行われます。
多対多の関係
多対多の関係では、テーブルAの行はテーブルBの多くの一致する行を持つことができ、逆もまた同様です。
そのような関係を作成するには、 junction table と呼ばれる3番目のテーブルを定義します。このテーブルの主キーは、テーブルAとテーブルBの両方からの外部キーで構成されます。
たとえば、CustomersテーブルとCookiesテーブルには、これらの各テーブルからOrdersテーブルへの1対多の関係で定義される多対多の関係があります。
一対一の関係
1対1の関係では、テーブルAの行はテーブルBの一致する行を1つしか持つことができません。逆も同様です。 両方の関連列が主キーであるか、一意の制約がある場合、1対1の関係が作成されます。
この方法で関連するほとんどの情報はすべて1つのテーブルにあるため、このタイプの関係は一般的ではありません。 あなたは1対1の関係を使用するかもしれません-
- テーブルを多くの列に分割します。
- セキュリティ上の理由から、テーブルの一部を分離します。
- 寿命が短く、テーブルを削除するだけで簡単に削除できるデータを保存します。
- メインテーブルのサブセットにのみ適用される情報を保存します。
MS Access-関係の作成
この章では、関連テーブル間の関係を作成する必要性を理解します。 優れたデータベース設計の目標の1つは、データの冗長性を取り除くことです。
- その目標を達成するには、データを多くのサブジェクトベースのテーブルに分割し、各ファクトが1回だけ表されるようにします。
- これを行うには、相互に関連するすべての共通フィールドが1つのテーブルに配置されます。
- この手順を正しく実行するには、まずテーブル間の関係を理解してから、これらの関係をAccessデータベースで指定する必要があります。
テーブルリレーションシップを作成する理由
データベースオブジェクトで使用する必要がある場合、MS Accessはテーブルの関係を使用してテーブルを結合します。 フォーム、クエリ、マクロ、レポートなど、他のデータベースオブジェクトを作成する前にテーブル関係を作成する必要がある理由はいくつかあります。
- 複数のテーブルのレコードを操作するには、多くの場合、テーブルを結合するクエリを作成する必要があります。
- クエリは、最初のテーブルのプライマリキーフィールドの値を2番目のテーブルの外部キーフィールドと照合することで機能します。
- フォームまたはレポートを設計するとき、MS Accessは、定義済みのテーブル関係から収集した情報を使用して、情報に基づいた選択肢を提示し、プロパティ設定に適切なデフォルト値を事前入力します。
- データベースを設計するとき、情報をテーブルに分割します。各テーブルには主キーがあり、それらの主キーを参照する関連テーブルに外部キーを追加します。
- これらの外部キーと主キーのペアは、テーブルのリレーションシップとマルチテーブルクエリの基礎を形成します。
次のスクリーンショットに示すように、データベースに別のテーブルを追加し、テーブルデザインを使用して tblHRData という名前を付けます。
上記のスクリーンショットのように*保存*アイコンをクリックします。
テーブル名として tblHRData を入力し、 Ok をクリックします。
*tblHRData* が作成され、データが含まれるようになりました。
MS Access-1対1の関係
MS Accessの1対1の関係を理解しましょう。 この関係は、あるテーブルの1つのレコードを別のテーブルの1つのレコードに関連付けるために使用されます。
[データベースツール]タブに移動しましょう。
[リレーションシップ]オプションをクリックします。
*tblEmployees* および *tblHRData* を選択し、[追加]ボタンをクリックしてビューに追加し、[*テーブルの表示]ダイアログボックスを閉じます。
これら2つのテーブル間のリレーションシップを作成するには、マウスを使用し、 tblEmployees の EmployeeID フィールドをクリックしてホールドし、 EmployeeID のすぐ上にマウスを置いて、関連付けたいフィールドにそのフィールドをドラッグアンドドロップします。 tblHRData *。 マウスボタンを離すと、Accessは次のウィンドウを開きます-
上記のウィンドウは、tblEmployeesのEmployeeIDをtblHRDataのEmployeeIDに関連付けます。 [作成]ボタンをクリックすると、これら2つのテーブルが関連付けられます。
これで、関係が自動的に保存され、[保存]ボタンをクリックする必要はありません。 最も基本的なリレーションシップが作成されたので、テーブルサイドに移動して、このリレーションシップで何が発生したかを確認しましょう。
*tblEmployees* テーブルを開きます。
ここでは、各レコードの左側に、デフォルトで小さなプラス記号が表示されます。 関係を作成すると、Accessはそのテーブルにサブデータシートを自動的に追加します。
プラス記号をクリックすると、このレコードに関連する情報が tblHRData テーブルに表示されます。
保存*アイコンをクリックして *tblHRData を開くと、入力したデータがすでにここにあることがわかります。
MS Access-1対多の関係
リレーションシップの大部分は、テーブルの1つのレコードが別のテーブルの多くのレコードに関連する可能性がある場合、この1対多のリレーションシップである可能性が高くなります。
1対多の関係を作成するプロセスは、1対1の関係を作成するプロセスとまったく同じです。
最初に、[デザイン]タブの[レイアウトのクリア]オプションをクリックして、レイアウトをクリアします。
次のスクリーンショットに示すように、最初に別のテーブル tblTasks を追加します。
保存*アイコンをクリックして、テーブル名として *tblTasks を入力し、 Relationship ビューに移動します。
*Show Table* オプションをクリックします。
*tblProjects* および *tblTasks* を追加し、 *Show Table* ダイアログボックスを閉じます。
同じプロセスをもう一度実行して、これらのテーブルを関連付けることができます。 tblProjectsのProjectIDをクリックしてホールドし、tblTasksのProjectIDにドラッグします。 さらに、マウスを離すと、関係ウィンドウがポップアップします。
作成ボタンをクリックします。 これで、非常に単純な関係が作成されました。
MS Access-多対多の関係
この章では、多対多の関係を理解しましょう。 多対多のリレーションシップを表すには、多くの場合多対多リレーションシップを2つの1対多リレーションシップに分割する、ジャンクションテーブルと呼ばれる3番目のテーブルを作成する必要があります。 そのためには、ジャンクションテーブルも追加する必要があります。 最初に別のテーブル tblAuthers を追加しましょう。
- 多対多の関係*を作成しましょう。 複数のプロジェクトに取り組んでいる複数の著者がいます。逆の場合も同様です。 ご存知のように、tblProjectsにはAuthorフィールドがあるため、そのテーブルを作成しました。 このフィールドはもう必要ありません。
[著者]フィールドを選択し、削除ボタンを押すと、次のメッセージが表示されます。
[はい]をクリックします。 ジャンクションテーブルを作成する必要があります。 次のスクリーンショットに示すように、このジャンクションテーブルには2つの外部キーがあります。
これらの外部キーフィールドは、一緒にリンクされた2つのテーブル( tblAuthers および tblProjects )の主キーになります。
Accessで複合キーを作成するには、これらのフィールドの両方を選択し、 table tools design タブから、その主キーを直接クリックすると、これらのフィールドの1つではなく両方がマークされます。
これら2つのフィールドの組み合わせが*テーブルの一意の識別子*です。 このテーブルを tblAuthorJunction として保存しましょう。
多対多のリレーションシップをまとめる最後のステップは、*リレーションシップビュー*に戻り、*テーブルの表示*をクリックしてそれらのリレーションシップを作成することです。
上記の3つの強調表示されたテーブルを選択し、[追加]ボタンをクリックして、このダイアログボックスを閉じます。
*AuthorID* フィールドをクリックして *tblAuthors* からドラッグし、 *tblAuthorJunction* テーブル *AuthorID* の上に配置します。
作成する関係は、Accessが1対多の関係と見なす関係です。 参照整合性も強制します。 Cascade Update をオンにして、上のスクリーンショットのように Create ボタンをクリックしてみましょう。
*ProjectID* を保持し、 *ProjectID* の上に *tblAuthorJunction* からドラッグアンドドロップします。
- 参照整合性*および*カスケード更新関連フィールド*を強制します。
以下は多対多の関係です。
MS Access-ワイルドカード
ワイルドカードは、テキスト値の未知の文字を表すことができる特殊文字であり、類似しているが同一のデータではない複数のアイテムを見つけるのに便利です。 ワイルドカードは、指定されたパターンマッチでデータベース化するのにも役立ちます。
Accessは、構造化照会言語の2つの標準をサポートするため、2セットのワイルドカード文字をサポートします。
- ANSI-89
- ANSI-92
原則として、。mdb や。accdb *ファイルなどのAccessデータベースに対して*クエリ*および *find-and-replace 操作を実行するときは、ANSI-89ワイルドカードを使用します。
Accessプロジェクトに対してクエリを実行するときに、ANSI-92ワイルドカードを使用します— Microsoft SQL Serverデータベースに接続されたファイルにアクセスします。 SQL Serverはその標準を使用するため、AccessプロジェクトはANSI-92標準を使用します。
ANSI-89ワイルドカード文字
次の表は、ANSI-89でサポートされている文字を示しています-
Character | Description | Example |
---|---|---|
* | Matches any number of characters. You can use the asterisk (*) anywhere in a character string. | wh* finds what, white, and why, but not awhile or watch. |
? | Matches any single alphabetic character. | B?ll finds ball, bell, and bill. |
[ ] | Matches any single character within the brackets. | B[ae]ll finds ball and bell, but not bill. |
! | Matches any character not in the brackets. | b[!ae]ll finds bill and bull, but not ball or bell. |
- | Matches any one of a range of characters. You must specify the range in ascending order (A to Z, not Z to A). | b[a-c]d finds bad, bbd, and bcd. |
# | Matches any single numeric character. | 1#3S finds 103, 113, and 123. |
ANSI-92ワイルドカード文字
次の表は、ANSI-92でサポートされている文字を示しています-
Character | Description | Example |
---|---|---|
% | Matches any number of characters. It can be used as the first or last character in the character string. | wh% finds what, white, and why, but not awhile or watch. |
_ | Matches any single alphabetic character. | B_ll finds ball, bell, and bill. |
[ ] | Matches any single character within the brackets. | B[ae]ll finds ball and bell, but not bill. |
^ | Matches any character not in the brackets. | b[^ae]ll finds bill and bull, but not ball or bell. |
- | Matches any one of a range of characters. You must specify the range in ascending order (A to Z, not Z to A). | b[a-c]d finds bad, bbd, and bcd. |
例
ここで、クエリデザインを開いて、これらのワイルドカード文字を使用する簡単な例を見てみましょう。
強調表示されたテーブルを追加し、 Show Table ダイアログボックスを閉じます。
クエリ結果として表示するフィールドをクエリグリッドに追加します。
クエリを実行します。
もう一度*クエリデザイン*に移動して、プロジェクト名のプロンプトを追加します。
ここでクエリを実行し、正確なプロジェクト名はわからないが、プロジェクト名に「potion」という単語が含まれていることを知っていると仮定します。 [OK]をクリックしてください。
上記の手順では結果は生成されません。 これは、Accessが*プロジェクト名フィールド*で完全に一致するものを探しているためです。 名前に potion という単語が含まれているプロジェクトを探しています。
ユーザーがワイルドカードを入力して不明な文字を置換できるようにする場合は、基準を調整し、演算子 like を含める必要があります。
クエリを実行すると、ユーザーはワイルドカードを使用して任意の数の文字を置き換えることができます。
単語 potion がタイトルのどこかに現れることは知っているが、どこにあるのか正確にはわからないと仮定します。
ポーションという単語の前に任意の数の文字を置き換える*を追加し、その後に別の*を追加できます。 [OK]をクリックしてください。
ユーザーが入力できるワイルドカードを知っていることは常に良いことです。 ただし、入力できるワイルドカードとできないワイルドカードを知らないユーザーもいます。 その場合、ワイルドカードを自分で入力できます。
この状況では、 Like 演算子とパラメータープロンプトの間に、これらのワイルドカードを追加できます。これを記述するための非常に具体的な方法があります。 引用符で囲まれた like という単語の後に、使用しているワイルドカードを入力します。 この場合、「」を使用して任意の数の文字を置き換えています。 これをパラメーターに追加します。 そのためには、アンパサンド(&)記号とスペースが必要です。 このステップを繰り返し、別のアンパサンド(&)を追加します。これは、ユーザーがそのプロジェクト名に入力した条件にワイルドカードを結合し、引用符で「」を入力するためです。
クエリを再度実行してみましょう。 プロンプトにワイルドカードを使用せずに potion と入力します。
クエリは、ここで入力されたもののいずれかの側でこれらのワイルドカードを追跡します。 ポーションを入力してEnterキーを押すだけです。
これで、探していた結果が得られ、ユーザーが何を入力しても結果は同じになります。
タイトルに「the」という単語が含まれるすべてのプロジェクトを検索するとします。 次に、単語を入力して Enter するか、 Ok をクリックするだけです。
このクエリを使用すると、名前に「the」という単語が含まれるプロジェクトを簡単に検索できます。 結果の2 ^ nd ^レベルには、「the」が単語の一部である単語「mother」を含むプロジェクト名も含まれる場合があります。
MS Access-計算式
MS Accessでは、式はExcelの式に似ています。 これは、単独または組み合わせて結果を生成するために使用できるいくつかの要素で構成されています。 式には、演算子、定数、関数、および識別子を含めることができます。
- 式を使用して、コントロールの値の取得やクエリへの基準の提供から、計算されたコントロールとフィールドの作成、レポートのグループレベルの定義まで、さまざまなタスクを実行できます。
- この章では、計算式と呼ばれる非常に特殊な式の作成に焦点を当てます。 データベース自体のどこにも保存されていないが、保存されている個別のフィールドから計算されたデータを計算して表示する計算フィールドをいくつか作成します。
これで、計算するデータが追加された新しいAccessデータベースができました。
例
これを理解するための例を試してみましょう。 さまざまなテーブル( tblCustomers、tblOrders、tblOrdersDetails 、 tblBooks )からいくつかの情報を取得し、さまざまなフィールドを確認します。
クエリを実行すると、次の結果が表示されます。
注文された本の数量を取得し、それに本の小売価格を掛ける小計の非常に簡単な計算が必要です。 すべての式または任意の式を名前で開始して、そのフィールドを呼び出すことをお勧めします。 これを*小計*と呼びましょう。
完全な式*(小計:[tblOrdersDetails]![QTY] * [tblBooks]![RetailPrice])*には、テーブル名、最初のtblOrdersDetailsが含まれます。 現在、感嘆符はAccessにそのテーブル内でフィールドQTYを探し、それにtblBooksの小売価格フィールドを掛けるように伝えています。
クエリを実行してみましょう。最後に小計フィールドが表示されます。
売上税を計算するとします。 クエリグリッドでは、以前とまったく同じ方法で行い、今回は単にTaxフィールドを呼び出し、小計に9%の税率を掛けます。
もう一度クエリを実行すると、最後に新しい* Taxフィールド*が表示されます。
MS Access-インデックス作成
インデックスはデータ構造であり、データ取得の速度を向上させるために設計された特別なデータ構造です。 テーブルを頻繁に検索したり、特定のフィールドでレコードをソートしたりする場合は、フィールドのインデックスを作成することにより、これらの操作を高速化できます。 Microsoft Accessは、ブック内のインデックスを使用してデータを検索するときに、テーブル内のインデックスを使用します。
- 主キーなどの場合、Accessは自動的にインデックスを作成します。
- また、自分でインデックスを作成することもできます。
- インデックスは、インデックスを作成するために選択したフィールドに基づいてレコードの場所を保存します。
- Accessは、インデックスから場所を取得した後、正しい場所に直接移動してデータを取得できます。
- このように、インデックスを使用すると、すべてのレコードをスキャンしてデータを検索するよりもかなり高速になります。
- インデックスを使用すると、クエリでの検索を高速化できますが、レコードを追加または更新する際のパフォーマンスも低下する可能性があります。
Microsoft Accessがデフォルトで作成するインデックスと、それらを自分で作成する方法を調べ、不要なインデックスを削除する方法を学びましょう。 作成したAccessデータベースの tblEmployees テーブルを開きます。
- このデータベースでインデックスを実際に使用したことはありませんが、だからと言ってインデックスがないというわけではありません。
- 実際、Accessで主キーとして設定されているフィールドには、自動的にインデックスが作成されます。
- Accessは、フィールドの名前に応じて追加のセカンダリインデックスを作成します。
[ファイル]メニューに移動し、[オプション]を選択します。
[アクセスオプション]ウィンドウが表示されます。
- オブジェクトデザイナー*に移動すると、インポート/作成時にAutoIndexというラベルのセクションが表示され、テキストボックスにID; key; code; numが表示されます。 デフォルトでは、これらの名前で始まるフィールドまたは終了するフィールドに手動で作成したフィールドだけでなく、インポートしたフィールドにもセカンダリインデックスが自動的に追加されます。
フィールドにインデックスを作成する場合は、[フィールド]タブに移動できます。
インデックスを作成するフィールドを選択し、[フィールド検証]セクションの[インデックス付き]チェックボックスをオンにします。 インデックスを作成または削除するための代替オプションもあります。 *デザインビュー*に戻ることができます。
任意のフィールドを選択して、インデックスを調整できます。 また、下のフィールドプロパティエリアでインデックスの作成方法を確認できます。 インデックス付きの横に No が選択されているフィールドは、そのフィールドにインデックスがないことを意味します。 ドロップダウンメニューをクリックし、他の2つのオプション(はい(重複OK)*および*はい(重複なし))を選択することで変更できます。
最後のオプション* Yes(No Duplicates)*は、Accessがそのフィールドの重複値を自動的に禁止することを意味します。 姓フィールドのインデックスを作成しましょう。
*LastName* を選択してインデックスを作成し、* Yes(Duplicates OK)*と言いましょう。 保存すると、Accessはそのインデックスを作成します。 テーブルのインデックスを表示および調整できるもう1つの領域は、 *Show/Hide* グループのテーブル設計領域です。
このインデックスボタンをクリックすると、このテーブル用に作成されたすべてのインデックスを表示する特別なビューが表示されます。
tblEmployeesには2つのインデックスがあります。1つは主キーフィールドに基づいて自動的に作成され、もう1つはLastNameフィールドに対して作成したものです。 これらは、Microsoft Accessテーブルのインデックスを処理するさまざまな方法です。
MS Access-グループ化データ
この章では、Accessのレコードのグループで計算する方法について説明します。 行ごとまたはレコードごとに計算するフィールドを作成して、行合計または小計フィールドを作成しましたが、個々のレコードではなくレコードのグループごとに計算したい場合はどうでしょうか。 これを行うには、*集計クエリ*と呼ばれるものを作成します。
集計クエリ
集計クエリまたは集計クエリとも呼ばれる集計クエリは、合計、質量、またはグループの詳細です。 合計または総量、またはレコードのグループまたはサブセットになります。 集計クエリは多くの操作を実行できます。 以下に、レコードのグループを合計する方法のいくつかをリストした簡単な表を示します。
S.No | Aggregate Functions & Description |
---|---|
1. |
Sum フィールド値を追加します |
2. |
Avg フィールド値の平均 |
3. |
Min 最小(最小)フィールド値 |
4. |
Max 最高(最大)フィールド値 |
5. |
Count 値(レコード)のカウント |
6. |
StDev 日付/時刻フィールドを含むフィールド値の標準偏差 |
7. |
Var 日付/時刻を含むフィールド値の分散 |
データベースを開いてクエリデザインに移動し、次の表を含めます-
このダイアログボックスを閉じると、次のスクリーンショットのクエリグリッドに示すように、次の2つのフィールドが表示されます。
これは単純なクエリであり、 book title と quantity の2つのフィールドのみを表示しています。実行すると、データベース内の個々の注文がすべて表示されます。
このクエリを実行すると、次の結果が表示されます。
これが本のタイトルが繰り返されている理由です。 ここでは、これらの本のそれぞれについて個別の注文が行われ、それらは異なる数量で注文されました。 一度だけリストされたその本のタイトルのみの要約を見たいと仮定しましょう。 そして、その横にリストされている数量の合計。
ここで、デザインビューに移動し、[デザイン]タブに、シグマシンボルが表示されます。 これが合計ボタンです。
テーブル行のフィールドの下に別の行を開くシグマ記号をクリックします。ここから、このクエリをグループ化する方法を指定できます。
本のタイトルでグループ化し、数量フィールドも合計します。
[ group by area ]をクリックし、さらにドロップダウンメニューをクリックすると、すべてのオプションが一覧表示されます。 この場合、オプション Sum を選択して、クエリを実行します。
これで、個々の書籍と、書籍名の横に表示されるすべての注文が表示されます。
アクセスの連結
正規化のプロセスを学び、別のフィールドに情報を保存しました。 姓と名のフィールドを1つのフィールドとして結合するように、データを一緒に表示または表示したい場合があります。 1つ以上の文字列を連結する計算フィールドを作成することにより、その情報を一緒に表示できます。 また、カンマやピリオドなどの必要な他の文字を追加することもできます。
- Accessで連結するには、*アンパサンド(&)*と*プラス(+)*記号を使用できる2つの異なる演算子があります。
- アンパサンドは2つの文字列を1つに結合しますが、プラス記号は2つの文字列を結合してNULL値を伝播します。たとえば、1つの値がNULLの場合、式全体がNULLと評価されます。
例
クエリデザインを使用して新しいクエリを作成するプロセスを理解するために簡単な例を見てみましょう。 これは、顧客のテーブルから情報を引き出す非常に簡単なクエリになります。
ここで、テーブルダイアログボックスを表示する tblCustomers テーブルを追加します。 いくつかの単純な名前付きフィールドとの連結を試みます。
姓と名のフィールドを追加して、クエリを実行してみましょう。
ご覧のとおり、名と姓は2つの異なるフィールドに分かれています。
この情報を一緒に表示する必要があります。
- デザインビュー*に戻り、3番目のフィールドに*フルネーム*という新しいフィールドを作成します。 次に、フルネームを追加し、これら2つのフィールドを連結する式を入力します。
クエリを実行すると、新しい計算フィールドが表示されます。
これらの2つのフィールドからの情報を連結することはできますが、期待どおりに表示されません。 それは私たちがそれを求めた方法を実行しているため、そのテキストのすべてを一緒に実行します。 ここで、これら2つのフィールドからの情報の間にスペースを追加するようにAccessに依頼する必要があります。
ここで、デザインビューに戻り、この式に別のセクションを追加しましょう。
引用符と別のアンパサンドの中にスペースを追加します。 これにより、Accessはその名のフィールドから情報を取得します。スペースを追加してから、最後の姓フィールドの情報を追加します。 ここで、クエリを再度実行すると、次の結果が表示されます。
MS Access-データの要約
特定の番号を1つだけ探している場合、集計クエリは優れていますが、スプレッドシートのような概要のような情報を要約する場合は、クロス集計クエリを試してみるとよいでしょう。 概要データを再構築して読みやすく、理解しやすくする場合は、*クロスタブクエリ*の使用を検討してください。
- クロス集計クエリは、*選択クエリ*の一種です。 クロス集計クエリを実行すると、結果がデータシートに表示されます。 このデータシートの構造は、他のタイプのデータシートとは異なります。 *次のスクリーンショットに示すように、クロス集計クエリの構造により、同じデータを表示する単純な選択クエリよりも読みやすくなります。
Accessでクロスタブクエリを作成する最も簡単な方法は、Accessに付属のウィザードを使用してクロスタブクエリを作成することです。 クエリグループの[作成]タブに移動し、クエリウィザードをクリックします。
上記のダイアログボックスには、あらゆる種類の特別なクエリが表示されます。 デザインビューからこれまで行ってきたような簡単なクエリウィザードを作成できます。 2つ目は、必要なものです。データをコンパクトなスプレッドシート形式で表示するクロス集計クエリです。 次に、クロス集計クエリを選択し、[OK]をクリックします。
ウィザードの最初の画面では、クロス集計クエリの結果に必要なフィールドが含まれるテーブルまたはクエリのプロンプトが表示されます。* Queries ラジオボタンをクリックし、 *qryOrdersInformation を選択します。これは以前に作成したもので、小計、売上税などが含まれます。 [次へ]をクリックします。
次に、そのクエリから使用可能なフィールドを調べます。 行見出しとして必要なフィールド値を入力するように求められます。 さまざまな本のタイトルの簡単なリストが必要だとしましょう。 書籍のタイトルフィールドを選択し、選択したフィールドエリアに送信して、[次へ]をクリックします。
上記のダイアログボックスでは、質問は列見出しとして使用するものであり、実際に評価するものによって異なります。 sales by date を表示し、 TransactionDate を選択して、 Next をクリックするとします。
上記のダイアログボックスの質問は、日時列を選択したため、以前に選択したフィールドに基づいた特別な質問です。 特定の間隔で日時列情報をグループ化するかどうかを尋ねています。 年オプションを選択し、[次へ]をクリックします。
上記のダイアログ画面の次の質問では、行の交差点の各列について、どの番号を計算するかを尋ねます。 この場合、関数から「* quantity(QTY)」と「Sum」を選択し、「 *Next 」をクリックすることにより、販売された本の数量別に移動できます。
ウィザードの最後の画面で、クエリに何を名前を付けますか*を尋ね、さらに *Finish をクリックして*そのクエリを表示*します。
現在、書籍ごとの情報と、各売上が発生したときのような総売上に関する情報があります。
MS Access-参加
データベースは、相互の論理関係を可能にするデータのテーブルのコレクションです。 リレーションシップを使用して、共通のフィールドでテーブルを接続します。 テーブルは任意の数のリレーションシップの一部にできますが、各リレーションシップには常に正確に2つのテーブルがあります。 クエリでは、関係は Join で表されます。
参加とは
結合は、データベース内の2つ以上のテーブルのレコードを結合する方法を指定します。 概念的には、結合はテーブルのリレーションシップに非常に似ています。 実際、結合とは、テーブルとの関係を照会することです。
以下は、この章で説明する2つの基本的な結合タイプです-
- 内部結合
- 外部結合
どちらも*クエリデザインビュー*から簡単に作成できます。
内部結合
ここで Inner Join を理解しましょう-
- 最も一般的な結合の種類は、Microsoft Accessの既定の結合の種類でもある内部結合です。
- 内部結合では、両方のテーブルの結合フィールドが等しい行またはレコードのみが表示されます。
- この結合タイプは、それらの共通フィールドとその中に含まれるデータを調べます。 一致のみが表示されます。
外部結合
- 外部結合*とは何かを理解しましょう−
- 外部結合では、1つのテーブルのすべての行と、結合されたフィールドが等しい他のテーブルの行またはレコードのみが表示されます。
- つまり、外部結合では、1つのテーブルのすべての行と、他のテーブルの対応する行のみが表示されます。
他の結合タイプもあります-
左外部結合と右外部結合
- 左外部結合*と*右外部結合*を理解しましょう-
- すべての行を表示するテーブルを選択できます。
- 最初のテーブルのすべての行を含む左外部結合を作成できます。
*2番目のテーブルのすべての行を含む右外部結合を作成できます。
[作成]タブに移動し、[デザインビュー]からクエリを作成します。* tblProjects および *tblTasks を選択し、次のスクリーンショットのように[テーブルの表示]ダイアログボックスを閉じます。
*tblProjects* から *ProjectName* フィールドを追加し、 *tblTasks* テーブルから *TaskTitle、StartDate* および *DueDate* を追加します。
クエリを実行してみましょう。
いくつかのプロジェクトのレコードのみを表示しています。 これらのプロジェクトのいくつかには、そのプロジェクトに関連付けられた多くのタスクがあり、この情報は ProjectID フィールドを通じて関連付けられています。
- Microsoft Accessでこのクエリを作成すると、Accessは作成した関係からこの関係を取得します。
- デフォルトでは、これらの2つのフィールド間、これらの2つのテーブル間で* Inner Joinと呼ばれるものを作成します。これが、これらの2つのテーブルからこの情報を関連付ける方法です。
- 一致のみが表示されているため、このクエリを実行すると、このクエリでレコードセットの一部として表示されない tblProjects にリストされている他の多くのプロジェクトがあります。その内部結合を介して結合されます。これもまた、クエリのデフォルト結合です。
ただし、関係を変更する場合は、外部結合を作成する、つまり、 tblProjects のすべてのプロジェクト、そのテーブルにあるすべてのレコード、およびすべての tblTasks からのタスク—結合プロパティを開きます。関係線をダブルクリックするだけでこれを実行できます。
Accessは、[結合のプロパティ]ダイアログに左側のテーブル名と右側のテーブル名を表示します。
- 左の列名と右の列名、および最初のラジオボタンには、両方のテーブルの結合フィールドが等しく、内部結合であり、リレーションシップを作成するとき、結合を作成するときにデフォルトで選択される行のみが含まれますクエリでは、しかし、あなたはそれを変更することができます。 他にも2つのオプションがあります。 tblProjects のすべてのレコードと、結合されたフィールドが等しく、このフィールドが左外部結合である *tblTasks のレコードのみを含めることができます。
- 3番目のオプションとして、tblTasksのすべてのレコードと、結合されたフィールドが等しく、これがRight Outer JoinであるtblProjectsのレコードのみを含めます。
これらは、デザインビューから簡単に作成できるさまざまな種類の結合です。 2番目のオプションであるLeft Outer Joinを選択して、[ Ok ]をクリックします。
私たちは今、他のステップを見てみましょう-
リレーションシップラインを見ると、 tblTasks の ProjectID を指す小さな矢印が表示されます。 このクエリを実行すると、次の結果が表示されます。
ご覧のとおり、関連するタスクがあるかどうかに関係なく、すべてのプロジェクト名が表示されています。 また、多数のnullフィールドが表示されます。 これらすべてのフィールドは、 tblTasks に関連情報がないため、これらはすべて空白です。 ここで、もう一度[デザインビュー]に移動して、関係線をダブルクリックします。
[結合のプロパティ]ダイアログボックスで、右外部結合の3番目のオプションを選択し、[ Ok ]をクリックします。
次に、関係線を見てください。 tblProjects の ProjectID を指す小さな矢印が表示されます。 このクエリを実行すると、次の結果が表示されます。
自己結合
自己結合は、別の種類の結合です。 自己結合は、同じテーブル内の一致するフィールドを関連付けます。 たとえば、同じテーブル内の別のフィールド(従業員ID)に保存されている同じ種類の番号を参照するスーパーバイザーフィールドを持つ従業員のテーブルを見てください。
Kaitlin Rasmussenのスーパーバイザーが誰であるかを知りたい場合は、そのスーパーバイザーフィールドに格納されている番号を取得し、その従業員IDフィールドのまったく同じテーブル内で調べて、Charity Hendricksがスーパーバイザーであることを知る必要があります。
このテーブルは、正規化されていないため、リレーショナルデータベースの理想的な構造ではありません。
従業員の名前を上司の名前と一緒にリストするだけのクエリを作成する状況がある場合、自己結合を作成しない限り、簡単にクエリを実行する方法はありません。
自己結合を表示するには、次のフィールドを持つテーブルを作成し、データを入力します。
ここで、従業員の名、次に監督者の名前を使用してリストを再度作成します。 *クエリデザインビュー*からクエリを作成しましょう。
次に、 tblEmployees テーブルを追加します。
このダイアログボックスを閉じます。
次に、従業員の名と姓を追加します。
ここで、このテーブルとそれ自体の間に関係を作成する方法が必要です。 これを行うには、* show tableダイアログボックス*を開いて、tblEmployeesをもう一度追加する必要があります。
このクエリビューで同じテーブルの別のコピーを作成しました。 次に、自己結合を作成する必要があります。 これを行うには、 tblEmployees テーブルの[Supervisor]をクリックし、マウスボタンを押したまま、コピーしたテーブルの EmployeeID のすぐ上にドロップします( tblEmployees_1 )。 次に、コピーしたテーブルから名と姓を追加します。
クエリを実行すると、次の結果が表示されます。
従業員の名前とその上司の名前が表示されます。 そして、これがMicrosoft Accessで自己結合を作成する方法です。
MS Access-重複クエリウィザード
このチュートリアルでは、主にデザインビューからさまざまな選択クエリを作成しました。 ただし、Accessでは、いくつかの特別なクエリウィザードを使用して、いくつかの特定の選択クエリを作成できます。 1つ目は、重複クエリの検索ウィザードです。 Find Duplicates Query Wizardは、単一のテーブルまたはクエリで重複フィールド値を持つレコードを見つけるクエリを作成します。
先ほど説明したように、リレーショナルデータベースは重複した情報を保存しないように設計されています。 しかし、その設計にもかかわらず、ユーザーが誤って重複した情報を入力することがあります。
例
顧客のテーブルでは、同じ顧客を誤って2回追加することができます。 このような場合、顧客の住所は同じですが、顧客IDが異なるため、レポート作成で問題が発生する可能性があります。 この状況では、* duplicates query wizardを使用して、可能な重複エントリをすばやく見つけることができます*。
*tblAuthers* テーブルを含むAccessデータベースを開き、 *Create* タブに移動して、クエリグループで *query wizard* を選択します。
次のスクリーンショットが表示される場合、4つの異なるウィザードから選択できます。 重複検索クエリウィザード*を選択し、 *OK をクリックします。
重複の検索クエリウィザードの最初の画面では、可能な重複を検索するテーブルまたはクエリを尋ねます。 著者のテーブルをチェックして、同じ著者が誤って2回入力されていないことを確認したいとします。 そのため、tblAuthorsを選択し、[次へ]をクリックします。
- ウィザードの2番目の画面では、どのフィールドに重複情報が含まれている可能性があるかを尋ねられます。
- 通常、プライマリキーフィールドを使用することはありません。これも、Accessのフィールドをプライマリキーとして指定すると、Accessでは重複の入力が許可されないためです。
- 他のフィールドまたはフィールドの組み合わせを調べます。
姓または名と姓で検索できます。また、住所で検索したり、電話番号や誕生日を具体的に検索したりすることもできます。
ここで、名、姓、誕生日で検索し、[次へ]をクリックします。
このウィザードの次の画面では、クエリに表示するフィールドを求められます。 このため、二重矢印を押すと、すべてのフィールドが追加のクエリフィールド領域に移動し、クエリ結果に追加されます。
[次へ]をクリックします。 このクエリウィザードの最後の画面に移動します。
次の画面で、クエリに名前を付ける方法を入力します。
デフォルトでは、重複を見つける*に加えて、*クエリしているオブジェクトの名前に関係なく*名前を付けます。 この場合は *tblAuthors ですが、他の名前を付けて[ finish ]をクリックすることもできます。
ここで、Accessは重複の可能性を発見しました。これは、同じ誕生日、同じ住所、同じ電話番号で異なるAuthorIDを持つ著者Jose Calineになります。
これは間違いなく2回入力されています。 クエリにすべてのフィールドを追加しました。レコードを削除するだけです。 また、別のテーブルに関連するレコードがないことを確認する必要があります。
任意のレコードを選択し、次のダイアログボックスで「削除」を選択します。
アクセスすると、「1つのレコードを削除しようとしています」というプロンプトが表示されます。続行する場合は、[はい]をクリックします。
そのウィザードがこのクエリをどのように作成したかを確認するには、デザインビューに移動して、このクエリにすべてが追加されたことを確認します。
上記のスクリーンショットでわかるように、名フィールドの下にフィールドと特定の基準があります。
これが、このウィザードがその重複情報を検索する方法です。 これは、重複を見つける最も簡単な方法です。
MS Access-一致しないクエリウィザード
Accessには、もう1つの非常に便利なウィザードがあり、それは Find Unmatched Query Wizard です。 一致しないクエリの検索ウィザードは、あるテーブルのレコードまたは行を検索し、別のテーブルに関連レコードがないクエリを作成します。
クエリでデータを結合する方法、およびほとんどのクエリが2つ以上のテーブル間の一致をどのように検索するかについては既に説明しました。
- これはAccessの既定の結合です。たとえば、 tblCustomers と tblOrders の2つのテーブルでクエリを設計し、CustomerIDでこれらの2つのテーブルを結合すると、このクエリは一致する結果のみを返します。 つまり、注文した顧客。
- 一致を表示したくない場合があります。たとえば、データベース内の顧客(まだ注文していない顧客)を表示したくない場合があります。
- これがまさに、一致しない検索クエリの機能です。
この種のクエリには、他にも多くの可能な用途があります。
データベースでは、これを使用して、どの著者がプロジェクトをまだ作成していないかを確認したり、どの従業員がまだ健康上の利点を選択していないかを確認したりできます。 ここで、 Customers および Orders テーブルを含むデータベースを開きましょう。 [作成]タブに移動し、クエリウィザードボタンをクリックします。
[一致しないクエリの検索ウィザード]を選択し、[OK]をクリックします。
このシナリオでは、注文していない顧客を探します。 最初の画面では、クエリ結果に必要なレコードが含まれているテーブルまたはクエリを尋ねています。
*tblCustomers* の顧客リストが必要になりました。 そのオプションを選択し、[次へ]をクリックします。
次の画面では、どのテーブルまたはクエリに関連レコードが含まれているかを指定する必要があります。 つまり、最初のテーブルと比較するためにどのテーブルを使用していますか。 そのためには、注文していないものを見つける必要があります。 すべての注文に関する情報を含むテーブル( tblOrders )を選択する必要があります。 次に、[次へ]をクリックします。
次の画面で、両方のテーブルにある情報を指定する必要があります。
- これは通常、ある種の主キー、外部キー、フィールド、または関係になります。
- データベースに既存の関係がある場合、Accessはそれらのフィールドを選択して一致させます。
- ただし、結合できる他のフィールドがあり、同様の情報が含まれている場合は、ここでも選択できます。
ここでは、「tblCustomers」のフィールドと「tblOrders」のフィールドの両方でデフォルトでCustIDが選択されています。 次に、[次へ]をクリックします。
次の画面で、クエリ結果に表示するフィールドを選択できます。
次に、使用可能なすべてのフィールドを選択して、双方向矢印をクリックします。 これにより、すべての*利用可能なフィールド*が*選択したフィールド*エリアに移動します。 次に、[次へ]をクリックします。
最後の画面では、クエリの名前を選択して[完了]をクリックできます。
ここでは、まだ注文していない顧客として1人の顧客がリストされています。
そのクエリがどのように作成されたかを確認することもできます。 このためには、*デザインビュー*に戻る必要があります。
このウィザードは、tblCustomerとtblOrdersの間に*外部結合*を作成し、 Is Null 基準がtblORdersからCustIDに追加されます。 これは、特定のレコードを除外することです。 この場合、注文したのは顧客であるか、tblOrdersに関連情報があるのは顧客です。
MS Access-フォームの作成
Accessのフォームは、必要なアイテムを簡単に表示または取得できるようにするストアのディスプレイケースに似ています。 フォームは、ユーザーまたは他のユーザーがAccessデスクトップデータベースに格納されているデータを追加、編集、または表示できるオブジェクトであるため、フォームの設計は重要な側面です。 Microsoft Accessのフォームを使用すると、デザインに関して多くのことができます。 フォームの2つの基本的なタイプを作成できます-
- バインドされたフォーム
- 非連結フォーム
バインドされたフォーム
ここで Bound Forms とは何かを理解しましょう−
- バインドされたフォームは、テーブル、クエリ、SQLステートメントなどの基になるデータソースに接続されます。
- バインドされたフォームは、フォームの目的を考えるときに一般的に考えられるものです。
- フォームに記入するか、データベースのデータを入力または編集するために使用します。
- 通常、バインドされたフォームの例は、ユーザーがデータベース内のデータを入力、表示、または編集するために使用するものです。
非バインドフォーム
非バインドフォームを見てみましょう-
- これらのフォームは、基になるレコードまたはデータソースに接続されていません。
- 非バインドフォームは、ダイアログボックス、配電盤、またはナビゲーションフォームです。
- つまり、通常、データ自体ではなく、データベース全体をナビゲートまたは操作するために非バインドフォームが使用されます。
バインドされたフォームの種類
Accessで作成できるバインドされたフォームには多くの種類があります。 型を理解しましょう-
単一アイテムフォーム
これは最も人気のあるものであり、これはレコードが表示される場所です-一度に1レコード。
複数アイテムフォーム
これにより、バインドされたデータソースから一度に複数のレコードが表示されます。
分割フォーム
フォームは、垂直または水平に半分に分割されます。 半分は単一のアイテムまたはレコードを表示し、もう半分はリストを表示するか、基礎となるデータソースからの複数のレコードのデータシートビューを提供します。
フォームを作成する
Accessでフォームを作成するために使用できる方法がいくつかあります。 このために、データベースを開き、*作成タブ*に移動します。 [フォーム]グループの右上隅に、[フォームウィザード]ボタンが表示されます。
そのボタンをクリックして、フォームウィザードを起動します。
ウィザードのこの最初の画面では、フォームに表示するフィールドを選択でき、複数のテーブルまたはクエリのフィールドから選択できます。
従業員情報のデータ入力に使用する簡単なフォームが必要だと仮定します。
*Tables/Queries* ドロップダウンリストから、 *tblEmployees* テーブルを選択します。 二重矢印をクリックして、すべてのフィールドを一度に移動します。
その1つのテーブルだけを残して、[次へ]をクリックします。
フォームウィザードの次の画面では、フォームに必要なレイアウトを求められます。 *円柱、表、データシート、および正当化された*レイアウトがあります。 ここで円柱レイアウトを選択し、[次へ]をクリックします。
次の画面では、フォームのタイトルを指定する必要があります。 frmEmployees と呼びましょう。
フォームにタイトルを付けたら、フォームを開いてそのフォームの外観を確認するか、テーブルに情報を入力し始めることができます。 または、フォームのデザインを変更するオプションを選択できます。 *フォームを開いて情報を表示または入力する*最初のオプションを選択し、*完了*をクリックします。
さて、次のスクリーンショットを見てください。 これがフォームの外観です。 これは単一のアイテムフォームです。つまり、一度に1つのレコードが表示され、さらに下にナビゲーションボタンが表示されます。これにより、9のレコードが表示されていることがわかります。 そのボタンをクリックすると、次のレコードに移動します。
そのフォームまたはそのテーブルの最後のレコードにジャンプする場合は、その右矢印のすぐ横にあるボタンを使用できます。その矢印は、最後のレコードボタンです。 新しい従業員情報を追加する場合は、このレコードの最後に移動すると、9つのレコードの後に空白のフォームが表示され、新しい従業員の情報の入力を開始できます。
これは、フォームウィザードを使用してフォームを作成する方法の一例です。 このフォームを閉じて、[作成]タブに移動します。 次に、ウィザードを使用して、もう少し複雑なフォームを作成します。 フォームウィザードをクリックします。今回は、いくつかの異なるテーブルからフィールドを選択します。
このフォームウィザードで、 Tables/Queries に tblProjects を選択し、ProjectID、ProjectName、ProjectStart、ProjectEndなどの使用可能なフィールドをいくつか選択します。 これらのフィールドは、選択したフィールドに移動します。
テーブル/クエリに tblTasks を選択し、TaskID、ProjectID、TaskTitle、StartDate、DueDate、PercentCompleteを送信します。 [次へ]をクリックします。
ここでは、いくつかの異なるオブジェクトからデータを取得します。 フォームの配置方法に関するオプションから選択することもできます。 フラットフォームを作成する場合は、 tblTasks で配置することを選択できます。これにより、上記のようにすべてのフィールドがフラットビューでレイアウトされた単一フォームが作成されます。
ただし、その1対多の関係に基づいて階層フォームを作成する場合は、tblProjectsによってデータを配置することを選択できます。
上記のウィンドウでは、 tblTasks の subform を含めるか、リンクされたフォームにすることができます。 このリンクされたフォームは、tblProjectsがその基になるプロジェクトフォームで選択したプロジェクトにフィルターされた2番目のフォームを起動するボタンを持っている場所です。 ここで、*サブフォームを含むフォーム*を選択し、[次へ]をクリックします。
次の画面で、サブフォームのレイアウトを選択できます。 データシートビューがデフォルトで選択されます。 データシートビューは、テーブルビューに似ています。 次に、[次へ]をクリックします。
次の画面で、フォームの名前を指定する必要があります。 必要な名前を入力して、[完了]をクリックします。
Accessを使用すると、フォームの外観をプレビューできます。 一番上には、 Projects テーブルのメインフォームにコントロールがあります。 下に行くと、サブフォームが表示されます。 フォーム内のフォームのようなものです。
複数アイテムフォーム
特定の種類のフォームを作成することもできます。 このためには、[その他のフォーム]ドロップダウンメニューをクリックします。
メニューから、 Multiple Items フォーム、 Datasheet フォーム、 Split フォーム、または Modal Dialog フォームを作成できます。 これらは通常、バインドされたフォームです。そのフォームにバインドするオブジェクトを選択します。 これは、モーダルダイアログフォームには適用されません。
このタイプのフォームを作成するには、まずナビゲーションペインでオブジェクトを選択する必要があります。 ここで tblEmployees を選択します。
- その他のフォーム*および*複数のアイテム*をクリックして続行します。
上記の手順により、複数のアイテムフォームがさらに作成され、すべての従業員がリストされます。
分割フォーム
このタイプのフォームは、垂直または水平に等分割されます。 半分には単一のアイテムまたはレコードが表示され、残りの半分には、基になるデータソースの複数のレコードのリストまたはデータシートビューが表示されます。
ナビゲーションペインで[ tblEmployees ]を選択し、[ Create ]タブで選択します。 More Formsメニューから Split Form オプションを選択すると、フォームが垂直に分割された次のフォームが表示されます。
MS Access-フォームの変更
簡単なデータ入力フォームを作成するいくつかの方法を学びました。 フォームはデータ入力のプロセスを容易にしますが、これらは、あなたが望む他の目的には役立たないかもしれません。 彼らはあなたが意図したものに対してキャッチーまたはユーザーフレンドリーではないかもしれません。
- フォームを作成する際、おそらく最初に行うことは、コントロールのサイズ変更または移動です。
- コントロールを追加または削除する必要がある場合もあります。
フォームを簡単に変更する方法について説明します。
コントロール
これは、データを表示したり、行などの装飾に使用されるアクションやアイテムを実行したりするフォームまたはレポート上のオブジェクトを記述するために使用される一般的な用語です。 つまり、コントロールとは、フォームまたはレポートに配置されるほぼすべてのものです。
以下は、コントロールとみなすことができます-
- ラベルなどのオブジェクト。
- 式を追加、編集、または計算するために使用できる非連結または連結テキストボックス。
- 保存、開く、電子メール、*印刷*などのアクションを実行するコマンドボタンと、これらのボタンはコントロールとも呼ばれます。 *これは、フォームまたはレポート上のオブジェクトの総称です。
次に、フォームを表示可能にするさまざまな側面を見て、フォームを編集および変更する方法を理解します。* tnlEmployees *のすべての従業員をリストするMultiple Itemsフォームを開きましょう。
従業員のリストを見ることができますが、実際には非常にユーザーフレンドリーなリストのようには見えません。 コントロールが大きすぎます。 それらは大きすぎ、間隔が空いており、非常に便利なリストビューを提供しません。
このフォーム上のコントロールの外観を編集するには、2つのフォームビューを使用できます。 [ホーム]タブで、[表示]ドロップダウンをクリックします。
レイアウトビューまたはデザインビューがあり、これらのビューの両方がフォームの編集に使用されます。 デフォルトでフォームビューが開きます。これは、基になるデータソースの操作または編集に使用するビューです。
フォーム自体の外観を編集するには、最初にレイアウトビューに移動する必要があります。
レイアウトビューに切り替えると、一連のコンテキストタブが表示されます。
Accessの上部には、[フォームレイアウトツール] *とマークされた領域があり、[デザイン]タブ、[アレンジ]タブ、および[フォーマット]タブの3つのタブがあります。
マウスを使用してこれらのコントロールのいずれかをクリックすると、Accessがそのフォームの特定の領域を強調表示し、その領域内のすべてのコントロールが明るいオレンジ色で表示され、選択した実際のコントロールは前のもの、またはクリックした場所の周りに濃いオレンジ色の境界線があります。
ここで、マウスをクリックしてドラッグし、その1つのコントロールの高さまたは幅、またはその両方のサイズを変更することにより、必要に応じてコントロールのサイズを変更できます。
この特定のフォームでは、単一のコントロールのサイズを変更すると、フォーム上の残りのコントロールのサイズも変更されます。これは、これらのコントロールがグループ化される方法が原因です。 マウスのクリックアンドドラッグ機能を使用して、必要な方法ですべてのフィールドを調整しましょう。
これは、このレイアウトビューからフォームのコントロールの高さと幅を編集する簡単な方法の1つです。
テーマ
Accessには、組み込みのテーマ、色、およびフォントスタイルを使用して、塗りつぶしの色をカスタマイズし、交互の行を網掛けすることにより、フォームをフォーマットする基本的な方法がいくつかあります。 frmEmployees を開きましょう。
Accessが作成するフォームは単純でシンプルです。 上部に青いバーと白い背景があります。
これらのフォームを他の方法でスタイル設定する方法を確認したい場合は、デザインビューまたはレイアウトビューに移動して、テーマ領域の[デザイン]タブにあるオプションのいくつかを確認できます。
テーマのドロップダウンギャラリーをクリックすると、事前に作成された多くのテーマを試すことができます。 それらのいずれかの上にマウスを置くと、色やフォントサイズ、実際に使用されているフォントなどの変化をプレビューできます。 特定のスタイルを適用するには、そのスタイルの上でマウスをクリックするだけで、その外観を確認できます。
テーマは気に入っているが、色を変更したい場合は、[デザイン]タブの[テーマ]グループに戻り、好きな色を選択して色を調整できます。 会社の色に合わせてカスタム色を作成することもできます。
同様に、選択できる一連のフォントスタイルもあります。 Officeスイートにあらかじめ組み込まれている多数の中から1つを選択するか、特定の見出しフォント、ボディフォントを選択し、そのフォントグループのカスタム名を作成して保存することで、それらのフォントをカスタマイズできます。
*frmEmployees* に戻りましょう。 このフォームでは、すべての行が薄い灰色で網掛けされていることがわかります。
書式設定オプションは*代替行の色*と呼ばれ、複数のフォームで調整する場合は、*デザインビュー*に移動します。
その詳細セクションを選択し、[形式]タブに移動すると、バックグラウンドグループに*代替行の色*のオプションが表示されます。 代替行の色を変更できます。 外観を確認するには、フォームビューまたはレイアウトビューに移動します。
シェーディングがまったく必要ない場合は、*代替色*として*色なし*を選択できます。これは、以前のバージョンのAccessの伝統的な外観です。
MS Access-ナビゲーションフォーム
Accessには、データベース内のさまざまなフォームとレポートを簡単に切り替えることができるナビゲーションコントロールが含まれています。 ナビゲーションフォームは、ナビゲーションコントロールを含む単純なフォームです。 ナビゲーションフォームは、デスクトップデータベースへの優れた追加機能です。
- Microsoft Accessは、ユーザーがデータベースをナビゲートする方法を制御するためのいくつかの機能を提供します。
- フォーム、クエリ、テーブルなど、作成するすべてのAccessオブジェクトをナビゲートするために、ナビゲーションペインを既に使用しています。
- 独自のナビゲーション構造を作成し、ユーザーが本当に必要な特定のオブジェクトを見つけやすくする場合は、ナビゲーションフォームを作成できます。ナビゲーションフォームは、ユーザーがフォームやレポートを使用または表示できるようにナビゲーションコントロールを使用するフォームですメインナビゲーションフォーム内から直接。
例
ナビゲーションフォームを作成する簡単な例を見てみましょう。 これには、[作成]タブに移動します。 [フォーム]グループに、このナビゲーションドロップダウンメニューが表示されます。
このメニューには、このナビゲーションフォームに埋め込むフォームとレポートの配置方法のさまざまなレイアウトが表示されます。
- 水平タブ付きのものと垂直タブ付きのものがあります。すべてのタブが左に揃えられている場合、すべてのタブが右に揃えられている垂直タブのレイアウトです。
- 2つのレベルがある水平タブレイアウトがあるため、上部に表示するオブジェクトがたくさんある場合は、これを利用できます。
- 水平タブと垂直タブの両方があり、左または右に揃えて配置できます。
次の例では、水平タブと垂直タブを使用します。 そのレイアウトまたはナビゲーションフォームを作成するには、単にクリックするだけで、Accessはナビゲーションコントロールを含む非連結フォームを作成します。
このナビゲーションフォームにオブジェクトを追加する最も簡単な方法は、オブジェクトを表示したい場所にドラッグアンドドロップするだけで、レイアウトビューを使用することです。
ナビゲーションペインから frmProjects フォームをドラッグし、上部の[新規追加]にドロップします。
同様に、ナビゲーションペインから frmAuthers フォームをドラッグし、[新しいボタンの追加]の左側にドロップします。
*frmSubTasks、frmCurrentProjects* など、プロジェクトに関連する他のフォームを追加しましょう。
次に、上部にタブを追加します。 最初に frmEmployees フォームを追加します。
これで、他のプロジェクトボタンが左側から消えていることがわかります。これは、それらが[プロジェクト]タブにアタッチされているためです。 左側に表示されるすべてのボタンは、上部で選択したものにリンクされています。 [従業員]タブが選択された状態で、従業員関連の情報を左にドラッグします。
これで、一方のタブにプロジェクト情報が、もう一方のタブに従業員情報があります。 同様に、要件に応じてさらにタブを追加できます。 ご覧のとおり、タブの名前が適切ではないため、これらのタブの一部の名前を変更して、より使いやすくします。 最も簡単な方法は、左側のタブまたはボタンをダブルクリックし、次のスクリーンショットに示すように名前を変更することです。
MS Access-コンボボックス
フォームにデータを入力する場合、入力する値を記憶するよりも、リストから値を選択する方が迅速かつ簡単です。 選択肢のリストは、フィールドに入力された値が適切であることを確認するのにも役立ちます。 リストコントロールは、既存のデータに接続したり、コントロールの作成時に入力した固定値を表示したりできます。 この章では、Accessでコンボボックスを作成する方法について説明します。
コンボボックス
コンボボックスは、ユーザーが選択できる値のドロップダウンリストを含むオブジェクトまたはコントロールです。
- コンボボックスコントロールは、選択肢のリストを表示するためのよりコンパクトな方法を提供します。
- リストは、ドロップダウン矢印をクリックするまで非表示です。
- コンボボックスを使用すると、リストにない値を入力することもできます。
- このように、コンボボックスコントロールは、テキストボックスとリストボックスの機能を組み合わせます。
例
次に、コンボボックスを作成する簡単な例を見てみましょう。 次のスクリーンショットに示すように、従業員用のフォームを作成しました。
電話タイプは Home、Cell 、または Work のいずれかでなければならないことがわかっているため、ここでPhoneタイプのコンボボックスを作成します。 この情報はドロップダウンリストで利用可能であり、ユーザーはこの情報を入力する必要はありません。
このフォームの*デザインビュー*に移動しましょう。 *電話の種類*フィールドを選択し、削除を押します。
[電話の種類]フィールドが削除されたら、[デザイン]タブに移動します。
次のスクリーンショットに示すように、[コントロール]メニューから[コントロールウィザードを使用する]オプションを選択し、メニューから[コンボボックスコントロール]を選択します。
次に、コンボボックスを目的の場所に描画し、マウスを離すと、[コンボボックスウィザード]ダイアログボックスが表示されます。
ここには、データのさまざまなオプションがあります。 2 ^ nd ^オプションを選択して、値を追加して[次へ]をクリックします。
表示する値をドロップダウンリストに入力し、[次へ]をクリックします。
[次へ]をもう一度クリックします。
コンボボックスの*ラベル*を入力し、*完了*をクリックします。
コンボボックスが作成されていることを確認できますが、他のフィールドに配置されていません。 最初にすべてのフィールドを選択してから、[アレンジ]タブに移動します。
左側には、 Stacked オプションが表示されます。 このボタンをクリックしてください。
これで、フィールドが整列していることがわかります。
各フィールドのサイズを同じにするために、異なるオプションがあります。サイズ/スペースボタンをクリックします。
ドロップダウンリストから、[ To Shortest ]をクリックします。
ここで、*フォーム*ビューに移動します。
ユーザーは、電話の種類のオプションを簡単に選択できるようになりました。
MS Access-SQLビュー
この章では、SQLビューについて説明します。 クエリデザインでクエリを作成するたびに、Accessは自動的にSQLクエリを作成します。 これは実際にテーブルからデータを取得します。 クエリデザインでクエリを作成するときに、SQLでクエリがどのように作成されるかを確認するには、データベースを開きます。
*Create* タブから *Query Design* を選択し、 *tblEmployees* テーブルを追加します。
クエリ結果として表示するフィールドを選択して、クエリを実行します。
これで、すべての従業員情報をクエリ結果として表示できます。 クエリグリッドで特定のフィールドを選択しました。同時に、MS Accessは、クエリグリッドから取得した結果を使用してSQLクエリも作成しました。
SQLを表示するには、[ホーム]タブに移動します。 [表示]メニューから[* SQLビュー*]を選択すると、クエリのSQLが表示されます。
例
以下は、進行中のプロジェクトを見る別の例です。
クエリを実行してみましょう。
SQLを表示するには、[表示]メニューから[SQLビュー]を選択します。
Accessによって自動的に生成されるSQLクエリを確認できます。 これは、2つのテーブルからデータを取得するのに役立ちます。
MS Access-フォーマット
Accessで特に便利な書式設定ツールの1つは、*条件付き書式設定*を適用して特定のデータを強調表示する機能です。 条件付き書式の簡単な例を見てみましょう。
例
この例では、データベースで fSubCurrentProjects というフォームを使用します。
このデータベースにはすべてのプロジェクトのリストがあり、 On Time Status や Number of Late Tasks などの新しいフィールドがいくつかあります。 このフォームは別のクエリから作成されます。
このクエリには、テーブルとクエリの間に結合があり、期日のカウントまたは期限切れのタスクを持つプロジェクトの数を表示します。 ここには、IF関数を使用して期日のカウントがゼロより大きいかどうかを判断する計算フィールドもあります。 その後、プロジェクトが遅れている場合は Late という言葉が表示され、特定のプロジェクトに期限切れのタスクがない場合は On Time が表示されます。
例1
この例では、上記のフォームを使用して、条件付き書式を使用して特定の情報を強調表示する方法を理解します。 ここで、現在遅れているすべてのプロジェクトを取り上げます。 1つのフィールドまたは複数のフィールドに条件付き書式を適用するには、レイアウトビューに切り替える必要があります。
次に、 On Time Status フィールドを選択します。
次に、[形式]タブに移動します。
その[形式]タブに、コントロールの書式設定と呼ばれるグループと、条件付き書式設定用の特別なボタンが表示されます。 [条件付き書式]をクリックします。
条件付き書式設定ルールマネージャーが表示され、現在、このコントロールに適用されるルールはありません。 [新しいルール]ボタンをクリックして、新しいルールを作成します。
[新しい書式ルール]ダイアログボックスが表示されます。 最初に、作成するルールのタイプを指定します。ここには2つのオプションがあります。 最初のオプションは、*現在のレコードの値を確認するか式を使用する*ことです。2番目のオプションは、*このレコードを他のレコードと比較する*ことです。
フォームには2つの値のうち1つしかありません。 On TimeまたはLateという単語のいずれかであり、それは特定のクエリからのものです。 最初のコンボボックスから「 Field Value Is 」を選択し、2番目のコンボボックスから「 equal to 」を選択します。 次に、引用符で単語「 Late 」を入力します。
ここで、条件付き書式を設定できます。つまり、 Late という単語がそのフィールドに表示される場合、このフィールドをどのように表示するかを設定できます。 フォントの色を赤に変更して、太字、斜体、および下線にします。これが条件付きルールです。 OK をクリックしてから*適用*をクリックし、もう一度 OK をクリックします。
*Late* という単語がフォーマットされていることがわかります。 これは、非常に基本的な条件付き書式ルールを作成する方法の一例です。
例2
別の例を見てみましょう。 ここでは、プロジェクトのタイトルまたは名前を*赤*および*太字、斜体*および*下線*にします。 フォームのプロジェクト名コントロールを選択します。
[書式]タブに戻り、[条件付き書式]をクリックして、上記のスクリーンショットに示すように、その特定のコントロールの新しいルールを作成します。
ここでは、選択した現在のフィールドの値をチェックしませんが、このフォームの別のフィールドに対してチェックします。 最初のコンボボックスで Expression Is を選択し、上のスクリーンショットのように最後にある…ボタンをクリックします。
式カテゴリには、このフォームにあるすべてのオブジェクトがあります。 CountofDueDate をダブルクリックします。 これにより、そのコントロールまたはそのフィールドへの参照が式ビルダーおよび条件まで送信されます(ゼロより大きい場合)。 次に、[OK]をクリックします。
[OK]をクリックしてから、[適用]と[OK]をもう一度クリックします。
これは、別のフィールドの値に基づいたフィールドの条件付き書式の例です。
実施例3
条件付き書式の別の例を見てみましょう。 どのプロジェクトが他のプロジェクトより遅れているか、タスクが遅れているかを確認したいとします。 [条件付き書式]オプションを選択します。
[新しいルール]ボタンをクリックして新しいルールを作成し、上のスクリーンショットのように[OK]をクリックします。
新しい書式設定ルールでは、ルールタイプ「他のレコードと比較」を選択します。 *バーの色をさらに赤*に変更します。 最短バーは最低値を表し、最長バーは最高値を表すようにします。 [OK]をクリックしてから、[適用]と[OK]をもう一度クリックします。
上記のスクリーンショットのように、条件付きシェーディングが適用されていることがわかります。 フォームビューに移動します。
MS Access-コントロールとプロパティ
この章では、Accessで利用できる*コントロールとプロパティ*について説明します。 フォームにコントロールを追加する方法も学習します。 コントロールは、データを入力、編集、または表示するために使用するフォームまたはレポートの一部です。 コントロールを使用すると、データベースアプリケーションのデータを表示および操作できます。
- 最も頻繁に使用されるコントロールはテキストボックスですが、他のコントロールにはコマンドボタン、ラベル、チェックボックス、サブフォーム/サブレポートコントロールが含まれます。
- 作成できるコントロールにはさまざまな種類と種類がありますが、それらはすべてバインドまたは非バインドの2つのカテゴリのいずれかに分類されます。
バウンドコントロール
バインドされたコントロールが何であるか今理解しましょう-
- バウンドコントロールは、フィールドやテーブル、クエリなど、データベース内の特定のデータソースに関連付けられているものです。
- 値は、テキスト、日付、数値、チェックボックス、画像、またはグラフです。
- バインドされたコントロールを使用して、データベースのフィールドからの値を表示します。
非バインドコントロール
ここで、非バインドコントロールとは何かを理解しましょう-
- 一方、非バインドコントロールはデータソースに関連付けられておらず、フォーム自体にのみ存在します。
- これらは、テキスト、画像、または線や長方形などの形状です。
制御タイプ
Accessでさまざまな種類のコントロールを作成できます。 ここでは、テキストボックス、ラベル、ボタンタブコントロールなど、いくつかの一般的なものについて説明します。
テキストボックス
- 通常、テキストボックスにあるものはすべてバインドされますが、常にではありません。
- これらのコントロールを使用して、データベースに保存されているデータを操作できますが、バインドされていないテキストボックスを使用することもできます。
- 計算コントロールは、作成した式に基づいて何らかの計算を実行し、データはデータベースのどこにも保存されません。
- オンザフライで計算され、その1つのフォームで実行されます。
ラベル
- ラベルは常にテキストであり、バインドされていません。
- 通常、ラベルはデータベースのどのソースにも接続されていません。
- ラベルは、テキストボックスなど、フォーム上の他のコントロールにラベルを付けるために使用されます。
ボタン
- これは別のタイプの一般的なコントロールです。これらのコマンドボタンは通常、マクロまたはモジュールを実行します。
- 通常、ボタンは、データベース内のデータまたはオブジェクトと対話するために使用されます。
タブコントロール
- タブコントロールは、フォーム内のコントロールまたは他のコントロールのタブ付きビューを提供します。
- フォームにタブを追加すると、特にフォームに多くのコントロールが含まれる場合、フォームをより整理して使いやすくすることができます。
- 関連するコントロールをタブコントロールの別々のページに配置することにより、混乱を軽減し、データの操作を容易にすることができます。
ハイパーリンク
- ハイパーリンクは、フォーム上に何か他のものへのハイパーリンクを作成します。 Webページでも、別のオブジェクトでも、データベース内の場所でもかまいません。
その他のコントロール
私たちは今、いくつかの他のコントロールを見てみましょう-
- Webブラウザーコントロールとナビゲーションコントロール、グループ、改ページ、コンボボックスを作成することもできます。 *チャート、ライン、トグルボタン、リストボックス、長方形、チェックボックス、非バインドオブジェクトフレーム、添付ファイル、オプションボタン、サブフォームとサブレポート、バインドされたオブジェクトフレームを作成し、フォームに画像を配置することもできます。
例
新しい空のフォームを作成して、これらのコントロールのいくつかの簡単な例を見てみましょう。* forms グループの *Create タブに移動し、 Blank Form をクリックします。
上記の手順により、データベース内のどのアイテムにもまだ添付されていない非バインドフォームが開きます。
デフォルトでは、上のスクリーンショットに示すように、レイアウトビューで開きます。
ここで、デザインビューに移動してフィールドを追加しましょう。
[デザイン]タブで、[プロパティシート]をクリックします。
プロパティシートで、ドロップダウン矢印をクリックし、[フォーム]が選択されていることを確認してから、[データ]タブに移動します。
[データ]タブで、レコードソースが空白のままであることを確認できます。 データベース内の2つの異なるテーブルに関連付けられるフォームを作成するとします。 […]ボタンをクリックします。 さらに、独自のクエリビルダーを開きます。
表示するデータを含むテーブルを選択します。 [追加]ボタンをクリックして、このダイアログボックスを閉じます。
ここで、tblEmployeesからすべてのフィールドを選択し、クエリグリッドにドラッグし、同様にtblHRDataからすべてのフィールドを追加します。
次に、[名前を付けて保存]をクリックして、このクエリに名前を付けます。
*qryEmployeesData* という名前を付けて[ *Ok* ]をクリックし、クエリビルダーを閉じます。
これで、クエリをレコードソースとして表示できます。 このフォームをデータベースのオブジェクト(この場合はqryEmployeesData)にバインドしました。 このフォームにいくつかのコントロールを追加することから始めて、コントロールのいずれかを追加するには、[デザイン]タブに移動し、コントロールグループからオプションを表示します。
[コントロール]メニューから、上記のスクリーンショットのように[コントロールの使用]ウィザードが強調表示されていることがわかります。 この小さなボタンには、デフォルトでその周りに強調表示されたボックスがあります。 これは、制御ウィザードがオンになっていることを意味します。 これはトグルスイッチのようなものです。 トグルスイッチをクリックすると、ウィザードがオフになります。 もう一度クリックすると、ウィザードがオンになります。
ラベルをクリックしてこのラベルをドラッグし、従業員情報を入力してから、[フォーマット]タブに移動して、次のスクリーンショットのようにフォーマットします。
太字スタイルを適用するか、そのラベル内のテキストのフォントサイズを変更するかなどを選択できます。 このコントロールは、フォームの詳細セクション内に表示されます。 まだ表示されていないフォームヘッダーセクション内にこのラベルを配置する方が理にかなっています。
そのフォームの背景の任意の場所を右クリックして、上のスクリーンショットのように Form Header を選択します。
このコントロールをフォームヘッダー領域に移動します。 [デザイン]タブから他のコントロールを作成してみましょう。 この時点で、すべてのフィールドを2つの異なるタブに分散したいとします。
コントロールメニューから、フォームにタブを作成するタブコントロールを確認できます。 タブコントロールをクリックして、上のスクリーンショットのように詳細セクションのフォームに描画します。
上記のスクリーンショットのように、2ページと2ページの2つのタブが作成されます。
このタブコントロールにいくつかのコントロールを追加することから始めましょう。
基になるクエリに保存されている情報を表示する場合は、[ツールのリボン]グループの[既存フィールドの追加]オプションをクリックして、基になるクエリの使用可能なすべてのフィールドを表示します。
既存のフィールドをページに移動するには、次のスクリーンショットのように、フィールドリストで使用可能なすべてのフィールドを選択します。
次のスクリーンショットのように、フィールドをタブコントロールのPage2にドラッグします。
次に、「アレンジ」タブに移動して、「スタック」レイアウトを選択します。
2番目のページで、このクエリから残りのフィールドを追加しましょう。
これらのコントロールのサイズと幅を調整して、好みの外観に調整できます。
フォーマットが完了したら、[名前を付けて保存]アイコンをクリックして、希望する名前でフォームを保存します。
[OK]をクリックし、フォームビューに移動して、そのフォームのすべての情報を表示します。
タブコントロールは、情報を表示および追加しやすくするために、コントロールまたはフィールドを2つの画面に分割しています。
MS Access-レポートの基本
この章では、レポートの基本とレポートの作成方法について説明します。 レポートは、Microsoft Accessデータベース内の情報を表示、フォーマット、および要約する方法を提供します。 たとえば、すべての連絡先の電話番号の簡単なレポートを作成できます。
- レポートは、テーブルやクエリから取得した情報、およびラベル、見出し、グラフィックスなどのレポートデザインに保存されている情報で構成されます。
- 基になるデータを提供するテーブルまたはクエリは、レポートのレコードソースとも呼ばれます。
- すべてを含めるフィールドが単一のテーブルに存在する場合、そのテーブルをレコードソースとして使用します。
- フィールドが複数のテーブルに含まれている場合、レコードソースとして1つ以上のクエリを使用する必要があります。
例
ここで、非常に単純なレポートを作成するプロセスを理解するために単純な例を取り上げます。 そのためには、[作成]タブに移動する必要があります。
[レポート]ボタンをクリックして基本的なレポートを作成する前に、適切なクエリが選択されていることを確認してください。 この場合、ナビゲーションペインで qryCurrentProjects が選択されています。 [レポート]ボタンをクリックすると、そのクエリに基づいてレポートが生成されます。
レポートがレイアウトビューで開いていることがわかります。 これにより、レポートに表示されるフィールドのサイズまたは幅をすばやく調整できます。 次に、列の幅を調整して、すべてがより適切に収まるようにします。
下にスクロールして、下部のページコントロールを調整します。
これは、非常に簡単なレポートを作成する非常に迅速な方法でした。 また、レポートのデザインビューから小さな変更と調整を行うこともできます。
- フォームと同様に、レポートはさまざまなセクションで構成されます。
- 詳細セクションがあります。これは、データの大部分が存在する場所です。
- ページヘッダーとページフッターセクションも表示されます。これらは、レポートの各ページの上部と下部に表示されます。
レポートのタイトルを変更して、別の名前を付けましょう。
保存アイコンをクリックして、レポートを保存します。
上記のダイアログボックスが表示されます。
レポートの名前を入力し、[OK]をクリックします。 このレポートが実際にどのように見えるかを印刷プレビューで表示する場合は、[表示]ボタンに戻り、[印刷プレビュー]をクリックして、このレポートが紙またはPDFとして印刷されたときの表示を確認できます。
右下隅のツールを使用して、ズームインまたはズームアウトできます。 また、[印刷プレビュー]タブにいくつかのボタンがあり、印刷プレビューに切り替えると自動的に表示されます。 ズームセクションには、1ページ、2ページのビューがあります。または、より長いレポートがある場合は、4ページ、8ページ、または12ページを一度に表示できます。 また、印刷に使用する用紙のサイズ、レポートの余白、向き、列数、ページ設定などの簡単なことも調整できます。 そして、それが、[作成]タブの[レポート]ボタンを使用して、非常にすばやく簡単なレポートを作成する方法です。
レポートデザインを使用してレポートを作成する
レポートデザインは、Accessでクイックレポートを作成するもう1つの方法です。 そのためには、フォームデザインボタンのようなレポートデザインビューボタンを使用する必要があります。 これにより、空のレポートが作成され、デザインビューで直接開かれます。これにより、コントロールソースを変更し、レポートのデザインビューにフィールドを直接追加できます。
[作成]タブに移動し、[レポートデザイン]ボタンをクリックします。
空のレポートまたは非バインドレポートが開きます。つまり、このレポートはデータベース内の他のオブジェクトに接続されていません。
[ツール]グループの[デザイン]タブで、[プロパティシート]を選択します。 これにより、プロパティペインが開きます。
[データ]タブで、このレポートにレコードソースを割り当て、次のスクリーンショットのようにデータベースオブジェクトに接続します。
ドロップダウンから qryLateProjects を選択すると、次のステップは、[デザイン]タブの[既存のフィールドリストの追加]ボタンをクリックして、このレポートにいくつかのフィールドを追加することです。
上記のスクリーンショットのようにフィールドを選択します。
上記のスクリーンショットのように、レポートにフィールドをドラッグします。 [アレンジ]タブに移動し、[テーブル]グループに選択できるオプションがいくつかあります。
スタックレイアウトと表形式レイアウトがあります。これは、スプレッドシートに非常によく似たレイアウトです。 表レイアウトを選択してみましょう。
すべてのラベルがページヘッダー領域まで移動することがわかります。 これらのラベルは各ページの上部に1回だけ表示され、データクエリは[詳細]セクションのすべてのレコードに対して繰り返されます。 これで、ProjectNameフィールドの幅を広げるためにいくつかの調整を行うことができます。
上記のスクリーンショットでわかるように、詳細セクションとページフッターの間に多くのスペースがあります。
次のスクリーンショットのように、ページフッターを上にドラッグしてスペースを削減しましょう。 [デザイン]タブに移動し、[表示]ボタンをクリックして、[レポートビュー]を選択します。
これで、一部のプロジェクト名が完全ではないことがわかります。デザインビューでこれを調整するか、レイアウトビューを使用して調整できます。
これが、デザインビューから単純なレポートを作成する方法です。
MS Access-レポートのフォーマット
この章では、レポートのフォーマット方法を学習します。 レポートの書式設定とフォームの書式設定には多くの類似点がありますが、レポートに固有のツールとトリックがいくつかあります。 次に、レポートセクションとグループ化の概念を見てみましょう。
そのためには、前の章で作成したレポートを開く必要があります。 ここでは、この情報の一部がレポートにどのように表示されるかを確認します。
ここでは、レポートセクションとグループ化から始めます。
次に、このレポートのデザインビューに移動します。
見るものはそれほど多くなく、ここではページヘッダー、詳細セクション、およびページフッターのみが表示されています。 追加のセクションを非常に簡単に追加できます。
そのレポートの任意の場所を右クリックすると、ページヘッダー/フッターとレポートヘッダー/フッターが表示されます。 この特定のレポートには、レポートヘッダー/フッターが表示されません。 そのオプションを選択して、レポートビューに戻りましょう。
レポートの最上部に小さな色の領域が追加されるだけです。 デザインビューで、ページヘッダーの分割線の上部でマウスを右クリックし、下にドラッグして、その領域を展開します。 これにより、レポートヘッダーに領域が追加されます。
レポートビューでは、次のスクリーンショットのように、レポートの最上部にさらに多くの領域が表示されます。
レポートのヘッダーとフッターのコントロールは、そのレポートの最初のページの上部に表示されます。 レポートフッターは、レポートの最後の最後のページに表示される内容を制御します。
レポートのヘッダーとフッターは、ページのヘッダーとページのフッターとは異なります。 ページヘッダーに配置されたものは、すべてのページの上部に表示されます。 同様に、ページフッターに配置されたものはすべてのページの下部で繰り返されます。
さらにグループ化レベルを追加できるようになりました。これを行うには、グループの並べ替えと合計領域を有効にする必要があります。
[デザイン]タブの[グループ化と合計]セクションで、[グループ化と並べ替え]ボタンをクリックします。下のスクリーンショットに示すように、グループ、並べ替え、合計領域が下部に表示されます。
追加のグループを追加したり、レポートにあるコントロールにグループ化することができます。 [グループの追加]をクリックします。
上記のスクリーンショットでは、プロジェクト名、タスクのタイトル、期日、完了率を含むレポートの基になるコントロールソースを確認できます。 ここで、プロジェクトごとにすべての遅延タスクをグループ化したいので、リストからプロジェクト名を選択します。
これで、詳細セクションの上に追加のグループレベル* ProjectNameヘッダー*が表示されます。 遅い個々のタスクの横に表示されるプロジェクト名の代わりに、このプロジェクト名ヘッダーまでこのコントロールを移動できます。 それを選択し、キーボードの Ctrl + X を押してその詳細セクションから切り取り、そのプロジェクト名ヘッダーの背景の任意の場所をクリックしてから、 Ctrl + V を押してそのコントロールをそのプロジェクトに貼り付けます名前ヘッダー。
これで、レポートビューに移動して、次のスクリーンショットのようにレポート内の項目をグループ化するために行われた調整を確認できます。
すべてのプロジェクトにはそれぞれ独自の小さなレベルがあり、その領域の下に、上記のプロジェクトに遅れているすべてのタスクが表示されます。 この変更により、レイアウトビューでレポートの書式設定を開始できます。
プロジェクト名を大きくする場合は、下の行をドラッグし、[形式]タブでフォントサイズを20に変更します。
コントロールの幅を広げて、ページの幅全体をカバーできます。
コントロールの周囲の境界線を削除するには、次のスクリーンショットのように、[書式]タブで[図形のアウトライン]をクリックします。
*Transparent* オプションを選択します。
次のスクリーンショットのように、デザインビューに移動します。
次のスクリーンショットのように、タスクタイトルをページの左側に調整します。
*Ctrl + X* および *Ctrl + V* を使用して、ページヘッダーセクションのデータを *ProjectName* ヘッダーセクションに移動します。
レポートビューに戻りましょう。 これで、ラベルが説明するコントロールのすぐ上にラベルが表示されます。
気付くと、タスクと次のプロジェクト名の間にスペースがないことがわかります。 間に追加のスペースが必要です。 そのためには、 ProjectName Footer を追加する必要があります。
次に、デザインビューに移動します。
[グループ、並べ替え、合計]エリアで、プロジェクト名の横にある[その他]ボタンをクリックします。
次のスクリーンショットのように、プロジェクト名でグループ化およびソートする方法のすべてのオプションがあります。
ここには、 Without a Footer Section というプロパティがあります。 *フッターセクションなし*という単語の横にある小さな矢印をクリックして、このオプションを変更します。
*With a Footer Section* に変更します。
上記のスクリーンショットでわかるように、詳細セクションの下にProjectNameフッターセクションが追加されています。 これは、そのプロジェクト名グループのフッターとして機能します。
レポートビューに戻りましょう。
[詳細]セクションと[プロジェクト名]領域の両方の領域のシェーディングまたは背景の外観を削除するには、デザインビューに再度移動します。
最初に詳細区分をクリックして詳細セクションを変更し、次にプロパティシートを開きます。
[形式]タブで、次のスクリーンショットのように、[代替の背景色]を[色なし]に変更します。
同様に、ProjectNameヘッダーとProjectNameフッターの両方の代替背景色を色なしに変更し、レポートビューに移動します。
これで、レポートの外観を確認できます。 ページごとにデータがどのように印刷されるかを確認するには、印刷プレビューに進みます。
これは、印刷するとどのように見えるかです。
MS Access-組み込み関数
この章では、組み込み関数を使用します。 Accessには100に近い組み込み関数があり、それらのすべてをカバーすることはほとんど不可能です。 この章では、基本的な構造、構文について説明し、いくつかの人気のある関数の使用と落とし穴を取り上げて、他の関数のいくつかを自分で探求できるようにします。
関数
関数は、タスクまたは計算を実行し、結果を返すVBAプロシージャです。 通常、関数はクエリで使用できますが、関数を使用できる場所は他にもあります。
- テーブルプロパティで関数を使用できます。たとえば、日付/時刻フィールドのデフォルト値を指定する場合、日付または Now 関数を使用してシステムから現在の日付/時刻情報を呼び出すことができます。その値を自動的に入力します。
- 計算フィールドを作成するときに式で関数を使用したり、フォームまたはレポートコントロール内で関数を使用したりすることもできます。 マクロ引数でも関数を使用できます。
- 関数は非常に単純で、他の情報を呼び出す必要がないか、単にテーブルまたはクエリから1つのフィールドを参照するだけです。
- 一方、複数の引数、フィールド参照、さらには別の関数内にネストされた他の関数でさえ、非常に複雑になる可能性があります。
組み込み関数の使用例をいくつか見てみましょう。
日付と時刻の関数
日付と時刻の機能を理解しましょう-
- Date()関数は、現在のシステム日付を返すように設計されています。 この関数は、関数の引数や追加情報を必要としません。 あなたがしなければならないのは、関数の名前とそれらの開き括弧と閉じ括弧を書くことだけです。
- よく似た2つの組み込み関数Time()とNow()があります。
- Time()関数は現在のシステム時刻のみを返し、Now()関数は現在のシステム日付と時刻の両方を返します。
- 追跡、保存、またはクエリするデータに応じて、そのタスクを支援する3つの組み込みの使いやすい関数があります。
データベースを開き、クエリデザインを使用して新しいクエリを作成し、tblProjectsとtblTasksを追加しましょう。
tblProjectsからProjectNameを追加し、tblTasksからTaskTitle、StartDateおよびDueDateを追加して、クエリを実行します。
これで、すべてのプロジェクトのさまざまなタスクをすべて表示できます。 今日の日付のように進行中のプロジェクトタスクを表示する場合は、* Date()*関数を使用して基準を指定し、今日の日付以降に開始するプロジェクトを確認する必要があります。
StartDateの下に基準を指定してみましょう。
基準は、記号より大きい*演算子で始まり、*記号と等しい、*日付関数*が続きます。
このクエリを実行すると、次のスクリーンショットのように、すべてのタスクが今日の日付または将来のいずれかに発生します。
これは、Date()関数をクエリ条件として使用する方法の例です。
- ここで、今週から開始する日付に関して、このクエリがより柔軟である必要があるとしましょう。
- 今週から始まったいくつかの異なるタスクがありますが、それらは基準のためにこの現在のリストには表示されていません。 今日以上の開始日を確認しています。
今週開始したタスク、まだ完了していないタスク、または今日完了すべきタスクを表示する場合は、デザインビューに戻りましょう。
ここでは、これらの基準にいくつかの追加情報を追加します。 実際、今日の日付から7日を引いた値以上にする必要があります。
マイナス7と入力してクエリを実行すると、今週開始されたタスクも確認できます。
DateDiff()関数
DateDiff()関数は、別の非常に一般的な日付/時刻関数です。 DateDiff関数は、指定された2つの日付間の時間間隔の数を指定するVariant(long)を返します。 つまり、2つの日付の差を計算し、関数がその差を計算する間隔を選択します。
著者の年齢を計算したいとします。 そのためには、まず新しいクエリを作成し、authorsテーブルを追加してから、FirstName、LastName、およびBirthDayフィールドを追加する必要があります。
生年月日または誕生日と今日の日付との差を計算することにより、人々の年齢を計算できます。
新しいフィールドでDateDiff関数を使用してみましょう。
Ageの後にコロンを付けて、DateDiff関数を記述します。
- DateDiff関数の最初の関数引数は間隔なので、「yyyy」と入力します。
- 次の関数引数は、計算する最初の日付であり、この場合は誕生日フィールドになります。
- 3番目の関数の引数は、今日の日付が何であってもです。
ここで、クエリを実行すると、各著者の年齢を示す新しいフィールドが表示されます。
Format()関数
Format()関数は、フォーマット式に含まれる指示に従ってフォーマットされた式を含む文字列を返します。 以下は、Format()function.ssで使用できるユーザー定義形式のリストです。
Setting | Description |
---|---|
yyyy | Year |
q | Quarter |
m | Month |
y | Day of year |
d | Day |
w | Weekday |
ww | Week |
h | Hour |
n | Minute |
s | Second |
クエリに戻って、Format()関数を使用して同じフィールドにフィールドを追加します。
フォーマット関数を入力します。 最初の関数引数は式であり、ほとんど何でもかまいません。 最初に誕生日フィールドを作成し、次はフォーマットを作成します。 この場合、月、月、日、日が必要です。 「mmdd」を引用符で囲んでから、クエリを実行します。
現在、誕生日フィールドから日付を取得しています。4は月、17は日です。
次のスクリーンショットのように、次のフィールドに「mmdd」ではなく「mmm」と「mmmm」を追加しましょう。
クエリを実行すると、次のスクリーンショットのように結果が表示されます。
次のフィールドでは、その誕生日の月の名前の最初の3文字が返され、最後のフィールドでは完全な月名が取得されます。
誕生日から年が続く月を表示するには、次のスクリーンショットに示すように「yyyy」を追加します。
もう一度クエリを実行してみましょう。
月、コンマ、年の順に表示されます。
IIf()関数
IIf()関数は「Immediate If」の略語であり、この関数は式をtrueまたはfalseとして評価し、それぞれの値を返します。 最大3つの関数引数があり、それらはすべて必須です。
- 最初の引数は、評価する任意の式です。
- 次の引数は真の部分を表します。これは、値または最初の式が真の場合に返される式です。
- 最後の引数は、式が偽の場合に返されるものです。
例
簡単な例を見てみましょう。 クエリデザインを使用して新しいクエリを作成し、tblAuthorsテーブルを追加してから、次のフィールドを追加します。
FirstName、MiddleInitial、LastNameの3つのフィールドがあり、次にこの連結フィールドがあり、3つのフィールドすべてをまとめていることがわかります。 クエリを実行して、このクエリの結果を確認しましょう。
これで、クエリの結果を確認できますが、一部のレコードにはミドルネームのイニシャルがないことにも気付くでしょう。 たとえば、Joyce Dyerレコードにはミドルネームのイニシャルはありませんが、FullNameフィールドには、実際に存在する必要のない期間が表示されます。 そのため、デザインビューに戻ります。 ここでは、IIf関数を使用して別の方法で名前を連結します。
別のフィールドに名前を書き込んでFullName1を呼び出し、IIf関数を入力します。
- Immediate If関数の最初の関数引数が式になります。 式では、中央の初期フィールドが空白かヌルかがわかります。
- 次の引数は本当の部分です。 したがって、ミドルネームのイニシャルがnullの場合、FirstNameとLastNameを表示する必要があります。
- ここで、誤った部分について、MiddleInitialがnullでない場合、FirstName、MiddleInitial、およびLastNameを表示する必要があります。
クエリを実行すると、次のスクリーンショットのように結果が表示されます。
MS Access-マクロ
この章では、Accessのマクロの基本について説明します。 マクロは、タスクを自動化し、フォーム、レポート、およびコントロールに機能を追加できるツールです。
- Accessのマクロは、基本的に一連のキーストロークを記録して後で再生するWordまたはExcelのマクロとは少し異なります。
- アクセスマクロは、一連の定義済みアクションから構築されているため、一般的なタスクを自動化し、コントロールまたはオブジェクトに機能を追加できます。
- マクロは、ナビゲーションペインから表示可能なスタンドアロンオブジェクト、またはフォームまたはレポートに直接埋め込むことができます。 マクロは、テーブル、フォーム、レポートなどのデータベースオブジェクトを作成すると、それらのすべてのオブジェクトをすばやく簡単に結び付けて、誰でも使用または変更できるシンプルなデータベースアプリケーションを比較的少ないトレーニングで作成できます。
- マクロを使用すると、VBAコードを記述したり、VBAコードを知っていなくてもコマンドを実行できます。マクロを使用するだけで多くのことが実現できます。
マクロを作成する
コマンドボタンがクリックされたときにフォームを開く非常に単純なマクロの作成から始めましょう。 このために、2つのタブを作成したデータベースとfrmEmployeeDataフォームを開く必要があります。
このフォームでは、ユーザーがすべてのジョブ情報を開くことができるボタンを追加できます。
このフォームのデザインビューに移動し、[コントロール]メニューからボタンを追加します。 マウスを離すと、コマンドボタンウィザードダイアログボックスが表示されます。
そのマクロアクションを作成する方法はいくつかありますが、最も簡単な方法は、コマンドボタンウィザードを使用することです。
フォームを開くなどの一般的なアクションの場合、[カテゴリ]リストから[フォーム操作]を選択し、[アクション]リストから[フォームを開く]を選択して、上のスクリーンショットのように[次へ]
コマンドボタンで開くフォームを指定する必要があります。 ここでは、 frmJobs を選択して、 Next をクリックします。
この画面には2つのオプションがあります。フォームを開いて特定のレコードを表示する、または*フォームを開いてすべてのレコードを表示する*ことができます。 2番目のオプションを選択し、上のスクリーンショットのように[次へ]をクリックします。
コマンドボタン自体に画像を表示させることも、テキストの表示を選択することもできます。 ここでは、「ジョブを表示」というテキストを表示し、「次へ」をクリックします。
上記のスクリーンショットのように、コマンドボタンに意味のある名前を付けることができます。 これは、他のコードまたは他のマクロで使用できます。 これを cmdViewJobs と呼び、 Finish をクリックします。
次に、フォームビューに移動します。
フォームに[ジョブの表示]ボタンが表示されます。 クリックしてみましょう。
これでフォームが開きましたが、情報は表示されません。 frmEmployeeDataフォームのデザインビューに戻りましょう。 コマンドボタンが選択されていることを確認し、プロパティシートの[イベント]タブをクリックします。
クリックすると、ウィザードによって作成された埋め込みマクロが表示されます。 このマクロを変更する場合は、[…]ボタンをクリックして、ウィザードで生成されたマクロを開きます。
これがマクロデザイナであり、右側にアクションカタログが表示されます。 これは、すべてのアクションがフォルダーに格納される場所です。 データ入力オプション、データインポート/エクスポートなどがあり、メインエリアの左側には別のマクロがあります。 1つのアクションのみが含まれており、その1つのアクションをクリックすると、その特定のアクションの他のプロパティを表示できます。
フォーム名が表示され、そのドロップダウン矢印を押すと、データベースで使用可能なフォームを表示できます。 そのフォームの表示方法を変更したり、フォームビュー、デザインビュー、印刷プレビューで任意に開いたりすることができます。 フィルタ名またはWhere条件を適用できます。 ここでは、frmJobsが新しいレコードの追加のみを許可する追加モードに設定されているため、データモードを変更します。 このマクロを編集モードに変更することで、ここでこれをオーバーライドできます。
マクロを保存し、マクロデザイナを閉じてフォームビューに戻ります。
[ジョブの表示]をもう一度クリックします。
これでfrmJobsフォームが開き、データベースで利用可能なすべてのジョブをスクロールできることがわかります。
MS Access-データのインポート
この章では、Accessでのデータのインポートと、Accessを使用してインポートできるデータの種類について説明します。 通常、データはさまざまな形式、ファイル、場所で保存されるため、データの取得と使用が困難になります。 スプレッドシート、SharePointリスト、またはその他の形式のデータがある場合は、わずかな手順でAccessデータベースにインポートして、Accessでさらに簡単に利用できるようにすることができます。
- [名前を付けて保存]コマンドは通常、ドキュメントを別の形式で保存するために使用されるため、別のプログラムで開くことができます。
- Accessでは、同じ方法で[名前を付けて保存]コマンドを使用することはできません。Accessオブジェクトを他のAccessオブジェクトとして保存できますが、Accessデータベースをスプレッドシートファイルとして保存することはできません。
- Accessをスプレッドシートファイルとして保存するには、[外部データ]タブのインポート機能を使用する必要があります。
さまざまな種類のデータアクセスがインポート可能
Accessデータにインポートできるデータの種類を理解するには、データベースを開いて[外部データ]タブに移動してください。
[インポートとリンク]グループには、Accessのデータインポートに使用できるさまざまな種類のオプションがあります。 以下は、最も一般的に使用されるデータインポート形式です。
- Microsoft Office Excel
- Microsoft Officeアクセス
- ODBCデータベース(SQL Serverなど)
- テキストファイル(区切りまたは固定幅) *XMLファイル
例
Excelファイルからインポートするデータの簡単な例を見てみましょう。 Accessファイルのデータは次のとおりです。
Accessにデータをインポートするには、最初にAccessデータベースを開いてから、次のスクリーンショットのように[外部データ]タブに移動する必要があります。
[インポートとリンク]グループに、Excelオプションが表示されます。 そのオプションをクリックしてみましょう。
データのインポート元のExcelファイルを参照すると、データを保存するためのさまざまなオプションがあります。 最初のオプションを選択して、[OK]をクリックします。
ここで、データのプレビューが表示されます。 次に、「次へ」をクリックします。
プレビューで、最初の行に列見出しが含まれていることがわかります。 チェックボックスをオンにして、[次へ]をクリックします。
各列/フィールドのデータ型を設定できるダイアログボックスが表示されます。 フィールドをインポートしない場合は、[フィールドをインポートしない]チェックボックスをオンにします。 FirstNameフィールドの設定が完了したら、MiddleInitialフィールドをクリックするだけです。
すべてのフィールドを確認して、[次へ]をクリックします。
主キーのさまざまなオプションを以下に示します。 最初のオプションを選択して、[次へ]をクリックします。
最後のダイアログボックスで、選択したテーブル名を入力し、[完了]をクリックします。
これらのすべての手順を保存する場合は、チェックボックスをオンにしてダイアログボックスを閉じます。
ナビゲーションペインに進みましょう。 ここに新しいテーブルが追加され、新しく追加されたテーブルを開くと、Accessのすべてのデータが表示されます。
例
Accessデータベースからデータをインポートする別の例を見てみましょう。 もう一度外部タブに行きましょう。
[インポートとリンク]グループで、[アクセス]オプションをクリックします。
データをインポートするAccessデータベースを参照し、テーブル、クエリ、フォームなどをインポートするという最初のオプションを選択します。 次に、[OK]をクリックします。
上記のダイアログボックスには、テーブル、クエリ、フォームなどのさまざまなタブがあります。 インポートするデータの種類を選択できる場所から。
[レポート]タブに移動して、インポートするレポートを選択します。* すべて選択*ボタンをクリックして、すべてのデータを選択することもできます。 [プロジェクト]を選択して[OK]をクリックします。
次に、ダイアログボックスを閉じます。 ナビゲーションペインで、新しいレポートが追加されていることがわかります。 このレポートを開くと、そのレポートのすべてのデータが表示されます。
MS Access-データエクスポート
この章では、Accessからデータをエクスポートする方法を理解します。 データのエクスポートは、実際にはデータのインポートの反対です。 データのインポートでは、Accessで他の形式のデータを使用し、エクスポートでは、他の形式でデータを保存します。
Accessデータからエクスポートできるデータの種類を理解するには、データベースを開いて[外部データ]タブに移動してください。
[エクスポート]グループには、Accessからのデータエクスポートに使用できるさまざまな種類のオプションが表示されます。 以下は、最も一般的に使用されるデータエクスポート形式です-
- Microsoft Office Excel
- Microsoft Officeアクセス
- ODBCデータベース(SQL Serverなど)
- テキストファイル(区切りまたは固定幅)
- XMLファイル
例
Accessからのデータエクスポートの簡単な例を見てみましょう。 データをエクスポートするデータベースを開きます。 ナビゲーションウィンドウで、データのエクスポート元のオブジェクトを選択します。
テーブル、クエリ、フォーム、レポートオブジェクトなどからデータをエクスポートできます。 qryAllProjectsを選択して、[外部データ]タブに移動します。
[外部データ]タブで、エクスポートするデータの種類をクリックします。 たとえば、Microsoft Excelで開くことができる形式でデータをエクスポートするには、Excelをクリックします。
アクセスにより、エクスポートウィザードが開始されます。 ウィザードでは、エクスポート先のファイル名やフォーマット、フォーマットを含めるかどうか、レイアウト、エクスポートするレコードなどの情報を設定できます。 必要な情報を設定したら、[OK]をクリックします。
ウィザードのこの画面では、通常、Accessはエクスポート操作の詳細を保存するかどうかを尋ねます。 同じ操作を繰り返し実行する必要があると思われる場合は、[エクスポート手順を保存]チェックボックスをオンにして、ダイアログボックスを閉じます。
次のExcelファイルが開きます。
ここで、データをテキストファイルにエクスポートする場合、[外部データ]タブで[テキストファイル]をクリックします。
エクスポートオプションを指定し、[OK]をクリックします。 [エンコード]ダイアログボックスが表示されます。ここで、デフォルトのエンコードでデータをエクスポートします。
最初のオプションを選択し、[OK]をクリックします。
ウィザードのこの画面で、Accessは通常、エクスポート操作の詳細を保存するかどうかを尋ねます。 同じ操作を繰り返し実行する必要があると思われる場合は、[エクスポート手順を保存]チェックボックスをオンにして、ダイアログボックスを閉じます。
テキストファイルが開いていることがわかります。
同様に、他のオプションも検討できます。 したがって、他のインポート/エクスポート機能も使用することを強くお勧めします。