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