適切に設計されたデータベースは、データの整合性を確保するのに役立つだけでなく、保守と更新が容易になります。 Access データベースは、Microsoft Word 文書や Microsoft PowerPoint スライド デッキと同じ意味のファイルではありません。 代わりに、テーブル、フォーム、レポート、クエリなど、適切に機能するために連携する必要があるオブジェクトのコレクションです。
ユーザーは主にコントロールを使用してデータを入力します。 特定のコントロールで実行する操作は、基になるテーブル フィールドのデータ型セット、そのフィールドに設定されたプロパティ、およびコントロールに設定されたプロパティによって異なります。 最後に、検証、既定値、リストと参照、カスケード更新などの追加のデータベース手法を使用することを検討してください。
ユーザーの観点からデータを更新する方法の詳細については、「 レコードを追加、編集、削除する方法」を参照してください。
この記事の内容
データベース設計がデータ入力に与える影響
データベースに保持する情報は、資産や連絡先などの特定の件名に関するデータを含む テーブルに格納されます。 テーブル内の各 レコード には、特定の連絡先などの 1 つのアイテムに関する情報が含まれています。 レコードは、名前、住所、電話番号などの フィールドで構成されます。 レコードは一般に行と呼ばれ、フィールドは一般に列と呼ばれます。 これらのオブジェクトは、一連の設計原則に従う必要があります。または、データベースの動作が不十分であるか、完全に失敗します。 さらに、これらの設計原則は、データの入力方法に影響します。 次の事項を検討します。
-
表 Access では、すべてのデータが 1 つ以上のテーブルに格納されます。 使用するテーブルの数は、データベースの設計と複雑さによって異なります。 フォーム、レポート、またはクエリによって返される結果でデータを表示することもできますが、Access はデータをテーブルにのみ格納し、データベース内の他のオブジェクトはそれらのテーブルの上に構築されます。 各テーブルは、1 つのサブジェクトに基づいている必要があります。 たとえば、ビジネスの連絡先情報の表に販売情報を含めないようにします。 その場合、正しい情報を見つけて編集することは、不可能ではないにしても困難になる可能性があります。
-
Data types 通常、テーブル内の各フィールドは 1 種類のデータのみを受け入れます。 たとえば、数値を受け入れるために設定されたフィールドにメモを格納することはできません。 このようなフィールドにテキストを入力しようとすると、エラー メッセージが表示されます。 ただし、これはハードで高速なルールではありません。 たとえば、短いテキスト データ型に設定されたフィールドに数値 (郵便番号など) を格納できますが、Access ではテキストと見なされるため、そのデータに対して計算を実行することはできません。
一部の例外では、レコード内のフィールドは 1 つの値のみを受け入れる必要があります。 たとえば、アドレス フィールドに複数のアドレスを入力することはできません。 これは、Microsoft Excel とは異なり、限られた種類のデータを受け入れるようにセルを設定しない限り、1 つのセルに任意の数の名前またはアドレスまたは画像を入力できます。
-
複数値を持つフィールド 複数値を持つフィールドのデータは、非表示のテーブルの行として保存されます。 Access には、複数のデータを 1 つのレコードに添付し、複数の値を受け入れるリストを作成するための、複数値フィールドと呼ばれる機能が用意されています。 Access では各リスト アイテムの横にチェック ボックスが表示されるため、複数値リストを常に識別できます。 たとえば、Microsoft PowerPoint スライド デッキと任意の数の画像をデータベース内のレコードにアタッチできます。 名前の一覧を作成し、必要な数の名前を選択することもできます。 複数値フィールドを使用すると、テーブル フィールドごとに複数のレコードを格納できるため、データベース設計のルールが損なわれる可能性があります。 ただし、Access では、特別な非表示のテーブルにデータを格納することで、"バックグラウンド" のルールが適用されます。
-
フォームの使用 通常、データベースを使いやすくし、ユーザーがデータを正確に入力できるように、フォームを作成します。 フォームを使用してデータを編集する方法は、フォームのデザインによって異なります。 フォームには、リスト、テキスト ボックス、ボタン、データシートなど、任意の数のコントロールを含めることができます。 フォーム上の各コントロールによって、基になるテーブル フィールドからのデータの読み取り、またはそのフィールドへのデータの書き込みが行われます。
詳細については、「 データベース設計の基本 」と「 テーブルの作成とフィールドの追加」を参照してください。
フィールドまたはコントロールの既定値を設定する
市区町村や国/地域など、特定のフィールドに対して多数のレコードが同じ値を共有する場合は、そのフィールドまたはフィールド自体にバインドされたコントロールの既定値を設定することで、時間を節約できます。 フォームまたはテーブルを開いて新しいレコードを作成すると、そのコントロールまたはフィールドに既定値が表示されます。
テーブル内
-
テーブルを [デザイン ビュー] で開きます。
-
ビューの上部にあるフィールドを選択します。
-
ビューの下部にある [ 全般 ] タブを選択します。
-
[既定値] プロパティを目的の値に設定します。
フォーム内
-
レイアウト ビューまたはデザイン ビューでフォームを開きます。
-
操作するコントロールを右クリックし、[ プロパティ] をクリックします。
-
[ データ ] タブで、[ 既定値 ] プロパティを目的の値に設定します。
検証ルールを使用してデータを制限する
入力時に Access デスクトップ データベースのデータを検証するには、検証規則を使用します。 入力規則は、テーブル デザインまたはテーブル データシート ビューのいずれかで設定できます。 Access の入力規則には次の 3 種類があります。
-
フィールド検証規則 フィールド検証ルールを使用して、すべての有効なフィールド値が満たす必要がある条件を指定できます。 関数内でフィールドを使用している場合を除き、現在のフィールドをルールの一部として指定する必要はありません。 フィールドに入力する文字の種類の制限は、[定型入力] を使って行うと簡単になる場合があります。 たとえば、日付フィールドには、過去の値を許可しない入力規則が存在することがあります。
-
レコードの検証規則 レコード検証ルールを使用して、すべての有効なレコードが満たす必要がある条件を指定できます。 レコードの入力規則を使用して異なるフィールド間の値を比較できます。 たとえば、2 つの日付フィールドを持つレコードでは、1 つのフィールドの値が常に他のフィールドの値の前に置く必要がある場合があります (たとえば、StartDate は EndDate より前です)。
-
フォームの検証 フォーム上のコントロールの [検証規則] プロパティを使用して、そのコントロールに入力されるすべての値が満たす必要がある条件を指定できます。 [入力規則] コントロール プロパティは、フィールドの入力規則と同じように機能します。 通常は、使用場所にかかわらず、規則がフォームのみに固有で、テーブルに対して固有でない場合は、フィールドの入力規則ではなく、フォームの入力規則を使用します。
詳細については、「 検証規則を使用してデータ入力を制限する」を参照してください。
値リストとルックアップ フィールドの操作
Access には、次の 2 種類のリスト データがあります。
-
値リスト これには、手動で入力するハードコーディングされた値のセットが含まれています。 値は、フィールドの Row Source プロパティにあります。
-
ルックアップ フィールド これらは、クエリを使用して別のテーブルから値を取得します。 フィールドの Row Source プロパティには、値のハードコーディングされたリストではなくクエリが含まれています。 クエリは、データベース内の 1 つ以上のテーブルから値を取得します。 既定では、ルックアップ フィールドはリストの形式でそれらの値を表示します。 ルックアップ フィールドの設定方法に応じて、その一覧から 1 つ以上の項目を選択できます。
メモ ルックアップ フィールドは、項目のリストが 1 つの場所 (検索フィールドのデータから作成されるリスト) に表示されるため、新しい Access ユーザーを混乱させる可能性がありますが、データは別の場所 (データを含むテーブル) に存在する可能性があります。
既定では、リスト ボックス コントロールを指定できますが、Access ではコンボ ボックス コントロールにリスト データが表示されます。 コンボ ボックスが開いてリストが表示され、選択すると閉じます。 一方、リスト ボックスは常に開いたままです。
リストを編集するには、[ リスト アイテムの編集] コマンドを実行するか、ソース テーブルの [行ソース ] プロパティでデータを直接編集することもできます。 ルックアップ フィールドのデータを更新すると、ソース テーブルが更新されます。
リスト ボックスまたはコンボ ボックスの "値集合タイプ" プロパティが [値リスト] に設定されている場合は、フォーム ビューでフォームを開いたまま値リストを編集できます。そのため、リストに変更を加える必要がある場合に、デザイン ビューまたはレイアウト ビューに切り替えてプロパティ シートを開き、コントロールの [値集合ソース] プロパティを編集する必要がありません。 値リストを編集するには、リスト ボックスまたはコンボ ボックスの "値リストの編集の許可" プロパティを [はい] に設定する必要があります。
詳細については、「 リスト ボックスまたはコンボ ボックスを使用して選択肢の一覧を作成する」を参照してください。
フォーム ビューでの値リストの編集を禁止する
-
ナビゲーション ウィンドウでフォームを右クリックし、[デザイン ビュー] または [レイアウト ビュー] をクリックします。
-
コントロールをクリックして選び、F4 キーを押してプロパティ シートを表示します。
-
プロパティ シートの [データ] タブで、"値リストの編集の許可" プロパティを [いいえ] に設定します。
-
[ ファイル ] をクリックし、[ 保存] をクリックするか、Ctrl キーを押しながら S キーを押 。
別のフォームを指定して値リストを編集する
Access の既定では、値リストを編集する目的のために組み込みのフォームが用意されています。 この目的のために別のフォームを使用する場合は、次のようにフォームの名前を [リスト項目編集フォーム] プロパティに入力できます。
-
ナビゲーション ウィンドウでフォームを右クリックし、ショートカット メニューの [デザイン ビュー] または [レイアウト ビュー] をクリックします。
-
コントロールをクリックして選び、F4 キーを押してプロパティ シートを表示します。
-
プロパティ シートの [データ] タブで、"リスト項目編集フォーム" プロパティ ボックスのドロップダウン矢印をクリックします。
-
値リストの編集に使用するフォームをクリックします。
-
[ファイル] をクリックし、[保存] をクリックするか、Ctrl キーを押しながら S キーを押 。
フォームのルックアップ フィールドを調べる
-
レイアウト ビューまたはデザイン ビューでフォームを開きます。
-
リスト ボックスまたはコンボ ボックス コントロールを右クリックし、[ プロパティ] をクリックします。
-
プロパティ シートで、[ すべて ] タブをクリックし、[ 行ソースの種類 ] プロパティと [ 行ソース ] プロパティを見つけます。 [Row Source Type]\(行のソースの種類\) プロパティには値リストまたはテーブル/クエリが含まれている必要があり、Row Source プロパティにはセミコロンまたはクエリで区切られた項目の一覧が含まれている必要があります。 スペースを増やすには、プロパティを右クリックし、[ ズーム ] を選択するか、Shift キーを押しながら F2 キーを押します。
通常、値リストでは "item";" という基本的な構文が使用されます。item";"item"
この場合、リストは二重引用符で囲まれ、セミコロンで区切られた項目のセットです。
Select クエリでは、次の基本的な構文を使用します。 SELECT [table_or_query_name]。[[field_name] FROM [table_or_query_name]。
この場合、クエリには 2 つの句 (SELECT と FROM) が含まれています。 最初の句は、テーブルまたはクエリと、そのテーブルまたはクエリ内のフィールドを参照します。 2 番目の句は、テーブルまたはクエリのみを参照します。 重要な点を次に示します。SELECT 句にはテーブルまたはクエリの名前を含める必要はありません。推奨されますが、少なくとも 1 つのフィールドの名前を含める必要があります。 一方、すべての FROM 句は常にテーブルまたはクエリを参照しています。 そのため、FROM 句を読み取ることで、ルックアップ フィールドのソース テーブルまたはソース クエリを常に見つけることができます。
-
次のいずれかの操作を行います。
-
値リストを使用している場合は、リスト内の項目を編集します。 各項目を二重引用符で囲み、各項目をセミコロンで区切ってください。
-
ルックアップ リスト内のクエリが別のクエリを参照している場合は、 デザイン ビュー でその 2 番目のクエリを開きます (ナビゲーション ウィンドウでクエリを右クリックし、[ デザイン ビュー] をクリックします)。 クエリ デザイナーの上部セクションに表示されるテーブルの名前をメモし、次の手順に進みます。
それ以外の場合、ルックアップ フィールドのクエリがテーブルを参照している場合は、テーブルの名前を書き留め、次の手順に進みます。
-
-
データシート ビューでテーブルを開き、必要に応じてリスト アイテムを編集します。
テーブル内のルックアップ フィールドを調べる
-
テーブルを [デザイン ビュー] で開きます。
-
クエリ デザイン グリッドの上部にある [ データ型 ] 列で、テキスト、数値、または [はい/いいえ] フィールドにフォーカスを置きます。
-
テーブル デザイン グリッドの下部にある [ 参照 ] タブをクリックし、[ 行ソースの種類 ] プロパティと [ 行ソース ] プロパティを確認します。
Row Source Type プロパティは、値リストまたはテーブル/クエリを読み取る必要があります。 Row Source プロパティには、値リストまたはクエリが含まれている必要があります。
値リストでは、"item";" という基本的な構文が使用されます。item";"item"
この場合、リストは二重引用符で囲まれ、セミコロンで区切られた項目のセットです。
通常、select クエリでは次の基本的な構文が使用されます。 SELECT [table_or_query_name]。[[field_name] FROM [table_or_query_name]。
この場合、クエリには 2 つの句 (SELECT と FROM) が含まれています。 最初の句は、テーブルまたはクエリと、そのテーブルまたはクエリ内のフィールドを参照します。 2 番目の句は、テーブルまたはクエリのみを参照します。 重要な点を次に示します。SELECT 句にはテーブルまたはクエリの名前を含める必要はありません。推奨されますが、少なくとも 1 つのフィールドの名前を含める必要があります。 一方、すべての FROM 句は常にテーブルまたはクエリを参照しています。 そのため、FROM 句を読み取ることで、ルックアップ フィールドのソース テーブルまたはソース クエリを常に見つけることができます。
-
次のいずれかの操作を行います。
-
値リストを使用している場合は、リスト内の項目を編集します。 各項目を二重引用符で囲み、各項目をセミコロンで区切ってください。
-
ルックアップ フィールドのクエリが別のクエリを参照している場合は、ナビゲーション ウィンドウで、デザイン ビューでその 2 つ目のクエリを開きます (クエリを右クリックし、[ デザイン ビュー] をクリックします)。 クエリ デザイナーの上部セクションに表示されるテーブルの名前をメモし、次の手順に進みます。
それ以外の場合、ルックアップ フィールドのクエリがテーブルを参照している場合は、テーブルの名前を書き留め、次の手順に進みます。
-
-
データシート ビューでテーブルを開き、必要に応じてリスト アイテムを編集します。
値リストまたはルックアップ フィールドからデータを削除する
値リストの項目は、レコードの他の値と同じテーブルに存在します。 一方、ルックアップ フィールド内のデータは、1 つ以上の他のテーブルに存在します。 値リストからデータを削除するには、テーブルを開いて項目を編集します。
ルックアップ リストからデータを削除するには追加の手順が必要です。これらの手順は、ルックアップ リストのクエリがテーブルまたは別のクエリからデータを取得するかどうかによって異なります。 ルックアップ リストのクエリがテーブルに基づいている場合は、そのテーブルと、リストに表示されるデータを含むフィールドを特定します。 次に、ソース テーブルを開き、そのフィールドのデータを編集します。 ルックアップ リストのクエリが別のクエリに基づいている場合は、その別のクエリを開き、そのクエリがデータの取得先としているテーブルおよびフィールドを検索して、そのテーブル内の値を変更します。
値リストからデータを削除する
-
テーブルを [デザイン ビュー] で開きます。
-
デザイン グリッドの上部で、値リストが含まれるテーブル フィールドを選択します。
-
デザイン グリッドの下部で、[ルックアップ] タブをクリックし、[値集合ソース] プロパティを見つけます。
既定では、値リストの項目は二重引用符で囲まれており、各項目はセミコロンで区切られています。たとえば、"Excellent";"Fair";"Average";"Poor" のようになっています。
-
必要に応じて、リストから項目を削除します。 削除する各項目を囲んでいる引用符も削除してください。 さらに、先頭のセミコロンやセミコロンのペア (;;) が残らないようにし、リストの最後の項目を削除する場合は、最後のセミコロンを削除します。
重要 値リストから削除した項目がテーブル内のレコードによって既に使用されている場合、削除された項目は、変更を加えない限り、レコードの一部として残ります。 たとえば、会社が A 市に倉庫を所有していて、その建物を売却した場合を想定します。 倉庫の一覧から "A 市" を削除しても、それらの値に変更を加えない限り、テーブルには "A 市" というレコードが残ります。
ルックアップ フィールドからデータを削除する
-
テーブルを [デザイン ビュー] で開きます。
-
デザイン グリッドの上部で、ルックアップ フィールドを選択します。
-
デザイン グリッドの下部で [ルックアップ] タブをクリックし、[値集合タイプ] プロパティと [値集合ソース] プロパティを探します。
[値集合タイプ] プロパティに [テーブル/クエリ] が表示され、[値集合ソース] プロパティにテーブルまたは別のクエリを参照するクエリが含められます。 ルックアップ フィールドのクエリは、常に SELECT という単語で始まります 。
通常 (ただし、必ずというわけではない)、次の基本的な書式を使用するクエリを選択します: SELECT [table_or_query_name].[field_name] FROM [table_or_query_name]
この場合、クエリには 2 つの句 (SELECT と FROM) が含まれています。 最初の句はテーブルとそのテーブル内のフィールドを参照しているのに対し、2 番目の句はテーブルのみを参照しています。 注意する必要があるのは、FROM 句では常に取得先テーブルまたはクエリの名前が宣言されているという点です。 SELECT 句にはテーブルまたはクエリの名前が常に含まれているわけではありませんが、少なくとも 1 つのフィールドは必ず含まれています。 一方、すべての FROM 句は常にテーブルまたはクエリを参照しています。
-
次のいずれかの操作を行います。
-
ルックアップ フィールドのクエリが別のクエリを参照している場合は、[ ビルド ] ボタン (プロパティ シートの [ データ ] タブで、次に [ ] をクリック) をクリックして、デザイン ビューでクエリを開きます。 クエリ デザイナーの上部に表示されるテーブルの名前を書き留め、手順 5 に進みます。
-
ルックアップ フィールドのクエリがテーブルを参照している場合、テーブルの名前を書き留め、手順 5 に進みます。
-
-
データシート ビューでソース テーブルを開きます。
-
ルックアップ リストで使用されているデータが含まれているフィールドを探し、必要に応じてそのデータを編集します。
データ型がデータの入力方法にどのように影響するか
データベース テーブルを設計するときは、そのテーブル内の各フィールドのデータ型を選択します。これは、より正確なデータ入力を確保するのに役立つプロセスです。
データ型を表示する
次のいずれかの操作を行います。
データシート ビューを使用する
-
テーブルを [データシート ビュー] で開きます。
-
[ フィールド ] タブの [ 書式設定 ] グループで、[データ型] リストの値を確認します。 テーブル内のさまざまなフィールドにカーソルを置くと、値が変わります。
デザイン ビューを使用する
-
テーブルを [デザイン ビュー] で開きます。
-
デザイン グリッドを確認します。 グリッドの上部セクションには、各テーブル フィールドの名前とデータ型が表示されます。
データ型がデータ入力に与える影響
各テーブル フィールドに設定するデータ型は、フィールドに許可されるデータの種類に対する最初のレベルの制御を提供します。 [長いテキスト] フィールドなど、必要なデータを入力できる場合があります。 AutoNumber フィールドなどの他の場合、フィールドのデータ型の設定では、情報を入力できなくなります。 次の表に、 Access が提供するデータ型の一覧と、それらがデータ入力にどのように影響するかを示します。
詳細については、「 Access デスクトップ データベースのデータ型 」および 「フィールドのデータ型設定を変更または変更する」を参照してください。
Data type (データ タイプ) |
データ入力への影響 |
---|---|
短いテキスト |
[短いテキスト] フィールドでは、区切られた項目の一覧を含むテキストまたは数字を使用できます。 テキスト フィールドは、長いテキスト フィールドよりも小さい文字数 (0 から 255 文字) を受け取ります。 場合によっては、変換関数を使用して、短いテキスト フィールドのデータに対して計算を実行できます。 |
長いテキスト |
この種類のフィールドには、最大 64,000 文字の大量のテキストと数値データを入力できます。 また、リッチ テキストの書式設定をサポートするようにフィールドを設定すると、Word などのワープロ プログラムで通常見つかる書式設定の種類を適用できます。 たとえば、テキスト内の特定の文字に異なるフォントとフォント サイズを適用し、太字や斜体などにできます。 ハイパーテキスト マークアップ言語 (HTML) タグをデータに追加することもできます。 詳細については、「 リッチ テキスト フィールドを挿入または追加する」を参照してください。 さらに、長整数型 (Long Text) フィールドには 、Append Only というプロパティがあります。 このプロパティを有効にすると、新しいデータを [長いテキスト] フィールドに追加できますが、既存のデータを変更することはできません。 この機能は、問題追跡データベースなどのアプリケーションで使用することを目的としています。ここで、変更できない永続的なレコードを保持する必要がある場合があります。 [追加のみ] プロパティが有効になっている [長いテキスト] フィールドにカーソルを置くと、既定では、フィールド内のテキストは消えます。 テキストに書式やその他の変更を適用することはできません。 Short Text フィールドと同様に、長整数型 (Long Text) フィールドのデータに対して変換関数を実行することもできます。 |
数字 |
この種類のフィールドには数値のみを入力でき、[数値] フィールドの値に対して計算を実行できます。 |
大きい数値 大量のデータ型は、 Microsoft 365 サブスクリプション バージョンの Access でのみ使用できます。 |
この種類のフィールドには数値のみを入力できます。また、[大きな数値] フィールドの値に対して計算を実行できます。 詳細については、「大きい数値データ型を使用する」を参照してください。 |
日付と時刻に関する数式 |
この種類のフィールドには日付と時刻のみを入力できます。 フィールドの入力マスク (フィールドを選択したときに表示される一連のリテラル文字とプレースホルダー文字) を設定できます。スペースにデータを入力し、マスクが提供する形式を入力する必要があります。 たとえば、MMM_DD_YYYYなどのマスクが表示される場合は、指定されたスペースに「Oct 11 2017」と入力する必要があります。 完全な月名または 2 桁の年の値を入力することはできません。 詳細については、「 入力マスクを使用してデータ入力形式を制御する」を参照してください。 入力マスクを作成しない場合は、有効な日付または時刻の形式を使用して値を入力できます。 たとえば、2017 年 10 月 11 日、10/11/17、2017 年 10 月 11 日などと入力できます。 フィールドに表示形式を適用することもできます。 その場合、入力マスクが存在しない場合は、ほぼすべての形式で値を入力できますが、表示形式に従って日付が表示されます。 たとえば、2017 年 10 月 11 日と入力できますが、値が 11-Oct-2017 として表示されるように表示形式が設定される場合があります。 詳細については、「 今日の日付を挿入する」を参照してください。 |
通貨 |
このタイプのフィールドには通貨値のみを入力できます。 また、通貨記号を手動で入力する必要はありません。 既定では、Access では、Windows リージョン設定で指定された通貨記号 (¥、£、$など) が適用されます。 必要に応じて、この通貨記号を変更して別の通貨を反映させることができます。 |
オートナンバー |
この種類のフィールドのデータは、いつでも入力または変更できません。 テーブルに新しいレコードを追加するたびに、AutoNumber フィールドの値がインクリメントされます。 |
計算結果 |
この種類のフィールドのデータは、いつでも入力または変更できません。 このフィールドの結果は、定義した式によって決まります。 テーブルに新しいレコードを追加または編集するたびに、計算フィールドの値が更新されます。 |
はい/いいえ |
このデータ型に設定されているフィールドをクリックすると、フィールドの書式設定方法に応じて、チェック ボックスまたはドロップダウン リストが表示されます。 フィールドを書式設定してリストを表示する場合は、フィールドに適用される形式に応じて、リストから [はい ] または [いいえ]、[ True ] または [ False] 、または [オン ] または [オフ ] を選択できます。 リストに値を入力したり、フォームまたはテーブルからリスト内の値を直接変更したりすることはできません。 |
OLE オブジェクト |
このタイプのフィールドは、別のプログラムで作成されたファイルのデータを表示する場合に使用します。 たとえば、OLE オブジェクト フィールドにテキスト ファイル、Excel グラフ、PowerPointスライド デッキを表示できます。 添付ファイルを使用すると、他のプログラムからデータを表示する、より高速で簡単で柔軟な方法が提供されます。 |
ハイパーリンク型 |
この種類のフィールドには任意のデータを入力でき、Access によって Web アドレスにラップされます。 たとえば、フィールドに値を入力すると、Access によってテキストが http://www で囲 まれます。your_text.com。 有効な Web アドレスを入力すると、リンクが機能します。 そうしないと、リンクによってエラー メッセージが表示されます。 また、マウスでハイパーリンク フィールドをクリックするとブラウザーが起動し、リンクで指定されたサイトに移動するため、既存のハイパーリンクの編集が困難になる場合があります。 ハイパーリンク フィールドを編集するには、隣接するフィールドを選択し、TAB キーまたは方向キーを使用してハイパーリンク フィールドにフォーカスを移動し、F2 キーを押して編集を有効にします。 |
添付 |
他のプログラムのデータをこの種類のフィールドに添付することはできますが、テキストや数値データを入力したり、入力したりすることはできません。 詳細については、「 データベース内のレコードにファイルとグラフィックスをアタッチする」を参照してください。 |
ルックアップ ウィザード |
参照ウィザードはデータ型ではありません。 代わりに、ウィザードを使用して、値リストとルックアップ フィールドという 2 種類のドロップダウン リストを作成します。 値リストでは、ルックアップ ウィザードを使用するときに手動で入力する項目の区切られたリストが使用されます。 これらの値は、データベース内の他のデータまたはオブジェクトから独立して使用できます。 一方、ルックアップ フィールドではクエリを使用して、データベース内の他のテーブルの 1 つ以上からデータを取得します。 ルックアップ フィールドは、ドロップダウン リストにデータを表示します。 既定では、ルックアップ ウィザードによってテーブル フィールドが数値データ型に設定されます。 ルックアップ フィールドは、テーブル内で直接操作することも、フォームやレポートでも操作できます。 既定では、ルックアップ フィールドの値は、コンボ ボックスと呼ばれるリスト コントロールの種類 (ドロップダウン矢印を含むリスト) に表示されます。
スクロール バーを持つ複数の項目を表示するリスト ボックスを使用して、他の項目を表示することもできます。
ルックアップ フィールドとコンボ ボックスの設定方法に応じて、ルックアップ フィールドの [リストに制限] プロパティをオフにすることで、リスト内の項目を編集し 、リスト に項目を追加できます。 リスト内の値を直接編集できない場合は、定義済みの値の一覧またはルックアップ フィールドのソースとして機能するテーブル内のデータを追加または変更する必要があります。 最後に、ルックアップ フィールドを作成するときに、必要に応じて複数の値をサポートするように設定できます。 これを行うと、結果の一覧に各リスト アイテムの横にチェック ボックスが表示され、必要な数の項目を選択またはクリアできます。 次の図は、一般的な複数値リストを示しています。
複数値のルックアップ フィールドを作成し、結果のリストを使用する方法については、「 複数値フィールドの作成または削除」を参照してください。 |
テーブル フィールドのプロパティがデータの入力方法にどのように影響するか
データベースの構造を制御する設計原則と、特定のフィールドに入力できる内容を制御するデータ型に加えて、いくつかのフィールド プロパティも Access データベースにデータを入力する方法に影響を与える可能性があります。
テーブル フィールドのプロパティを表示する
Access には、テーブル フィールドのプロパティを表示する 2 つの方法があります。
データシート ビュー
-
テーブルを [データシート ビュー] で開きます。
-
[ フィールド ] タブをクリックし、[書式設定] グループのコントロール を 使用して、各テーブル フィールドのプロパティを表示します。
デザイン ビュー
-
テーブルを [デザイン ビュー] で開きます。
-
グリッドの下部で、[ 全般 ] タブをクリックします (まだ選択されていない場合)。
-
ルックアップ フィールドのプロパティを表示するには、[ 参照] タブ をクリックします。
プロパティがデータ入力に与える影響
次の表に、データ入力に最も大きな影響を与えるプロパティを示し、それらがデータ入力にどのように影響するかを説明します。
プロパティ |
テーブル デザイン グリッド内の場所 |
指定可能な値 |
データを入力しようとするときの動作 |
---|---|---|---|
フィールド サイズ |
[全般] タブ |
0-255 |
文字制限は、Text データ型に設定されたフィールドにのみ適用されます。 指定した文字数を超えて入力しようとすると、フィールドによって文字が切り取られます。 |
必須 |
[全般] タブ |
はい/いいえ |
オンにすると、このプロパティはフィールドに値を強制的に入力します。必要なフィールドが完了するまで、Access では新しいデータを保存できません。 オフにすると、フィールドは null 値を受け入れます。つまり、フィールドは空白のままです。 null 値は、ゼロ値と同じではありません。 ゼロは数字で、"null" は欠損値、未定義値、または不明な値です。 |
長さ 0 の文字列を許可する |
[全般] タブ |
はい/いいえ |
オンにすると、長さ 0 の文字列 (文字を含む文字列) を入力できます。 長さ 0 の文字列を作成するには、フィールド ("") に二重引用符のペアを入力します。 |
インデックス |
[全般] タブ |
はい/いいえ |
テーブル フィールドにインデックスを付けると、Access では重複する値を追加できなくなります。 複数のフィールドからインデックスを作成することもできます。 これを行う場合は、1 つのフィールドの値を複製できますが、両方のフィールドでは複製できません。 |
定型入力 |
[全般] タブ |
リテラル文字とプレースホルダー文字の定義済みまたはカスタム セット |
入力マスクを使用すると、事前に定義された形式でデータを入力する必要があります。 マスクは、テーブル内のフィールドまたはフォーム上のコントロールを選択すると表示されます。 たとえば、[日付] フィールドをクリックすると、次の文字セット (MMM-DD-YYYY) が表示されます。 これは入力マスクです。 月の値を OCT などの 3 文字の省略形として入力し、年の値を 4 桁 (OCT-15-2017 など) として強制的に入力します。 入力マスクはデータの入力方法のみを制御し、Access がそのデータを格納または表示する方法は制御しません。 詳細については、「 入力マスクを使用したデータ入力形式の制御 」および「 日付と時刻フィールドの書式設定」を参照してください。 |
リストへの制限 |
[参照 ] タブ |
はい/いいえ |
ルックアップ フィールド内の項目に対する変更を有効または無効にします。 ユーザーがルックアップ フィールドの項目を手動で変更しようとすることがあります。 Access でフィールド内の項目を変更できないようにする場合、このプロパティは [はい] に設定されます。 このプロパティが有効になっていて、リスト内の項目を変更する必要がある場合は、リスト (値リストを編集する場合) またはリストのソース データを含むテーブル (ルックアップ フィールドを編集する場合) を開き、そこで値を変更する必要があります。 |
値リストの編集の許可 |
[参照 ] タブ |
はい/いいえ |
値リストに対して [リストアイテムの編集] コマンドを有効または無効にしますが、ルックアップ フィールドでは有効または無効にしません。 ルックアップ フィールドに対してそのコマンドを有効にするには、[ リスト アイテム] [フォームの編集] プロパティに有効なフォーム名を入力します。 [値リストの編集を許可] コマンドは、リスト ボックスまたはコンボ ボックス コントロールを右クリックして開くショートカット メニューに表示されます。 コマンドを実行すると、[ リスト アイテムの編集 ] ダイアログ ボックスが表示されます。 または、[ リスト アイテムの編集 ] プロパティでフォームの名前を指定した場合、ダイアログ ボックスを表示する代わりに、そのフォームが開始されます。 [リスト アイテムの編集] コマンドは、フォームにあるリスト ボックス コントロールとコンボ ボックス コントロール、およびテーブルとクエリ結果セットにあるコンボ ボックス コントロールから実行できます。 フォームは、デザイン ビューまたは参照ビューで開く必要があります。テーブルとクエリ結果セットはデータシート ビューで開いている必要があります。 |
リスト項目編集フォーム |
[参照 ] タブ |
データ入力フォームの名前 |
このテーブル プロパティに値としてデータ入力フォームの名前を入力すると、ユーザーが [リスト アイテムの編集] コマンドを実行すると、そのフォームが開きます。 それ以外の場合は、ユーザーがコマンドを実行すると、[ リスト アイテムの編集 ] ダイアログ ボックスが表示されます。 |
連鎖更新を使用して主キーと外部キーの値を変更する
場合によっては、主キーの値を更新する必要があります。 その主キーを外部キーとして使用する場合は、外部キーのすべての子インスタンスを通じて変更を自動的に更新できます。
注意してください。 主キー は、データベース テーブル内の各行 (レコード) を一意に識別する値です。 外部キーは、主キーと一致する列です。 通常、外部キーは他のテーブルに存在し、テーブル内のデータ間にリレーションシップ (リンク) を作成できます。
たとえば、プロダクト ID 番号を主キーとして使用するとします。 1 つの ID 番号は、1 つの製品を一意に識別します。 また、その ID 番号は、注文データのテーブルの外部キーとしても使用します。 そうすることで、各製品に関連するすべての注文を見つけることができます。これは、誰かがその製品を注文するたびに、ID が注文の一部になるためです。
場合によっては、これらの ID 番号 (または他の種類の主キー) が変更される場合があります。 その場合は、主キーの値を変更し、その変更が関連するすべての子レコードを自動的に連鎖させることができます。 この動作を有効にするには、参照整合性をオンにし、2 つのテーブル間で連鎖更新を行います。
次の重要なルールを覚えておいてください。
-
[テキスト] または [数値] データ型に設定されている主キー フィールドに対してのみ、カスケード更新を有効にすることができます。 AutoNumber データ型に設定されたフィールドに対して連鎖更新を使用することはできません。
-
連鎖更新は、一対多リレーションシップを持つテーブル間でのみ有効にすることができます。
リレーションシップの作成の詳細については、次を参照してください。 「テーブル リレーションシップのガイド」および「リレーションシップの作成、編集、または削除」を参照してください。
次の手順では、関係を作成してから、そのリレーションシップに対して連鎖更新を有効にする方法について説明します。
リレーションシップを作成する
-
[データベース ツール] タブの [表示/非表示] グループで [リレーションシップ] をクリックします。
-
[ デザイン ] タブの [ リレーションシップ ] グループで、[ テーブルの追加 ( Access でテーブルを表示 )] をクリックします。
-
[ テーブル ] タブを選択し、変更するテーブルを選択し、[ 追加] をクリックして、[ 閉じる] をクリックします。
Shift キーを押して複数のテーブルを選択することも、各テーブルを個別に追加することもできます。 リレーションシップの "1" と "多" の辺にあるテーブルのみを選択します。
-
[ リレーションシップ ] ウィンドウで、リレーションシップの "1" 側のテーブルから主キーをドラッグし、リレーションシップの "多" 側にあるテーブルの [外部キー] フィールドにドロップします。
[リレーションシップ] ダイアログ ボックスが表示されます。 次の図は、ダイアログ ボックスを示しています。
-
[ 参照整合性の適用 ] チェック ボックスをオンにし、[ 作成] をクリックします。
主キーでカスケード更新を有効にする
-
[データベース ツール] タブの [表示/非表示] グループで [リレーションシップ] をクリックします。
-
[ リレーションシップ] ウィンドウが表示され、データベース内のテーブル間の結合 (接続線として表示) が表示されます。 次の図は、一般的な関係を示しています。
-
親テーブルと子テーブルの間の結合線を右クリックし、[ リレーションシップの編集] をクリックします。
[リレーションシップ] ダイアログ ボックスが表示されます。 次の図は、ダイアログ ボックスを示しています。
-
[ 連鎖更新関連フィールド] を選択し、[ 参照整合性の適用 ] チェック ボックスがオンになっていることを確認し、[OK] をクリック します。
ID 番号が数値をスキップするように見える理由
AutoNumber データ型に設定されているフィールドを作成すると、新しいレコードごとにそのフィールドの値が自動的に生成されます。 値は既定でインクリメントされ、すべての新しいレコードが次に使用可能なシーケンシャル番号を取得します。 AutoNumber データ型の目的は、主キーとして使用するのに適した値を指定することです。 詳細については、「 主キーの追加、設定、変更、または削除」を参照してください。
AutoNumber データ型に設定されているフィールドを含むテーブルから行を削除すると、その行の AutoNumber フィールドの値が必ずしも自動的に再利用されるとは限りません。 そのため、Access によって生成される数値は、予想される数値ではない可能性があり、ID 番号のシーケンスにギャップが表示される場合があります。これは設計上の問題です。 シーケンスではなく、AutoNumber フィールドの値の一意性にのみ依存する必要があります。
クエリを使用したデータの一括更新
追加、更新、削除の各クエリは、レコードを一括で追加、変更、または削除するための強力な方法です。 さらに、一括更新は、データベース設計の優れた原則を使用する場合に実行する方が簡単で効率的です。 追加、更新、または削除クエリを使用すると、クエリを再利用できるため、時間を節約できます。
重要 これらのクエリを使用する前に、データをバックアップします。 バックアップを手元に置くと、誤って行う可能性がある間違いをすばやく解決するのに役立ちます。
クエリを追加する を使用して、1 つ以上のテーブルに多数のレコードを追加します。 追加クエリの最も頻繁な用途の 1 つは、ソース データベース内の 1 つ以上のテーブルから宛先データベース内の 1 つ以上のテーブルにレコードのグループを追加することです。 たとえば、新しい顧客と、それらの顧客に関する情報のテーブルを含むデータベースを取得するとします。 新しいデータを手動で入力しないようにするには、データベース内の適切なテーブルに追加します。 詳細については、「 追加クエリを使用してテーブルにレコードを追加する」を参照してください。
更新クエリ を使用して、多数の既存のレコードの一部 (ただし、すべてではない) を追加、変更、または削除します。 更新クエリは、[検索と置換] ダイアログ ボックスを強力にしたものと考えることができます。 選択基準 (検索文字列の大まかな等価条件) と更新基準 (置換文字列の大まかな等価条件) を入力します。 ダイアログ ボックスとは異なり、更新クエリは複数の条件を受け入れ、1 回のパスで多数のレコードを更新し、複数のテーブルのレコードを変更できます。 詳細については、「 更新クエリを作成して実行する」を参照してください。
クエリを削除する 大量のデータをすばやく削除する場合、または一連のデータを定期的に削除する場合は、クエリで条件を指定してデータをすばやく検索および削除できるため、削除が便利です。 詳細については、「 レコードを追加、編集、削除する方法」を参照してください。