webdevqa.jp.net

Accessの複数値フィールドに入力する簡単な方法はありますか?

私は私たちのオフィスに保管されているアイテムのデータベースを持っています。データベースを簡単に検索できるように、これらのアイテムにタグを付けたいと思います。ホッチキスと穴あけ器の数を知りたい場合は、Stationeryタグでフィルタリングできます。

これを行うために、TagsテーブルにItemという複数値のルックアップフィールドがあり、アイテムを分類できるすべてのタグのリストがあります(複数の場合もあります)。

現在、フォームまたはデータシートのいずれかでデータを入力するには、ドロップダウンメニューをクリックして、追加する各タグをクリックする必要があります。データ入力をできるだけスムーズかつ簡単にし、すべてキーボードを使用して実行できるようにしたいのですが、タグを入力しようとすると、入力できません。クリックしかできません。何百ものアイテムにとって、これは面倒です。

キーボードを使用するだけで、または少ない手順で複数値フィールドに値を入力するための解決策、ショートカット、または方法はありますか?

1
Lou

MS Accessで複数値フィールドを使用しないことを強くお勧めします:それらは データベース正規化ルール に反し、さらに簡単にアクセスできないかクエリの一部として他の単一値フィールドと同じように、保持しているデータをフィルタリングします。

代わりに、多対多の関係があると考えてください。Itemには多くのTagsがあり、 Tagは多くのItemsに割り当てられる場合があります。

したがって、ベストプラクティスに従い、 データベースの正規化 のルールを順守したい場合は、2つの別々のテーブルを使用してItemsTagsを格納することをお勧めします。 a ジャンクションテーブル 次のように:

アイテムテーブル

このテーブルには、テーブル内の各アイテムを一意に識別する主キー(PK)と、通常はDescriptionなどのテーブル内の他のアイテムによって値が共有されないプロパティが含まれます。

最も基本的な形式では、このようなテーブルは次のようになります。

+-------------+------------+
| itm_ID (PK) | Autonumber |
| itm_Desc    | Text       |
+-------------+------------+
+-------------+----------+
| itm_ID (PK) | itm_Desc |
+-------------+----------+
|           1 | Pen      |
|           2 | Pencil   |
|           3 | Chair    |
|         ... | ...      |
+-------------+----------+

テーブル内の他のアイテム(たとえば、ColourLocationType)によって共有される可能性のあるプロパティは、それぞれ別のテーブルに表示され、アイテムによって参照される必要があります。外部キー(FK)を使用して記録します。

タグテーブル

このテーブルには、使用可能なすべてのタグが含まれ、各タグは、テーブル内の主キーフィールドによって一意に識別されます。

+-------------+------------+
| tag_ID (PK) | Autonumber |
| tag_Desc    | Text       |
+-------------+------------+
+-------------+------------+
| tag_ID (PK) |  tag_Desc  |
+-------------+------------+
|           1 | Stationery |
|           2 | Furniture  |
|         ... | ...        |
+-------------+------------+

アイテム-タグジャンクションテーブル

このジャンクションテーブルは、ItemsTagsの間の多対多の関係を表すために使用され、次のように構成できます。

+----------------+--------------+
| itg_itmID (PK) | Long Integer |
| itg_tagID (PK) | Long Integer |
+----------------+--------------+
+----------------+----------------+
| itg_itmID (PK) | itg_tagID (PK) |
+----------------+----------------+
|              1 |              1 |
|              2 |              1 |
|              3 |              2 |
+----------------+----------------+

上記からわかるように、StationeryテーブルのPenPencilの両方にItemsタグを簡単に割り当てました(1つを示しています-タグとアイテム間のto-many関係)、同様に、任意のアイテムに複数のタグを割り当てることができます(Items&Tags間の1対多の関係を示しています)。

2
Lee Mac