web-dev-qa-db-ja.com

複数のテーブルにレコードを追加するフォームを作成します

私はアクセスするのが初めてで(2003バージョンしかありません)、夢中になっています。また、私は一般にDBの初心者であるため、今私は非常に混乱している段階にあることを考慮してください...助けてください。私が持っているすべての本をカタログ化するデータベースを設計しようとしています。テーブルを作成し、関係を設定しました Image of my DB ;多対多の関係にある「書籍」に関連するいくつかのテーブルがあります(例:著者:各書籍に複数の著者がいて、各著者が複数の書籍を「持っている」ことができます)。多く(例:ブックタイプ:1つのブックは1つのタイプのみである場合がありますが、そのタイプのブックは多数存在する場合があります。新しい本を追加して、たとえば既存の著者から選択したり、著者を新たに追加したりできるようにするには、1対多の関係のデータについても同じです。

これどうやってするの?

私は本当に失われました、複数のフォームが必要であり、それらをメインのサブフォームとして追加するには、クエリが必要ですか、それとも何ですか?

10
rodedo

上記の設計には4つのサブフォームが必要です。各サブフォームは、リンクの子およびマスターフィールドとしてブックIDを持つジャンクションテーブルと、2番目のテーブルIDの関連テーブルに基づくコンボボックスに基づいている必要があります。

たとえば、最初のサブフォームはAuthorsであり、ベースとなるテーブルはLibri_Autoriです

Link Master Field: Id
Link Child Field: SchedaLibro

コンボボックス:

Control Source: SchedaAutore
Row Source : SELECT Id, Nome FROM Autori
Bound Column: 1
Column Count : 2
Column Widths : 0, 2

ブックフォームを作成し、サブフォームの追加を開始すると、ウィザードがほとんどの作業を行います。

Authorsテーブルにレコードを追加するには、[リストに制限]を[はい]に設定し、[リストにない]イベントでコードを実行する必要があります。小さなポップアウトフォームを使用して、「バックグラウンド」テーブルにアイテムを追加するのが好きです。 ListItemsEditForm を設定できるため、Access 2010の方が簡単かもしれません。


1、サブフォームを追加する直前のブックフォーム。 [コントロールウィザードを使用する]が選択されていることに注意してください。これがデフォルトなので、選択を解除しない限り問題ありません。

Step 1 Using a wizard

サブフォームを追加するためのさまざまなウィザード手順 Wizard steps for adding a subform

サブフォームフィールドの選択

Selecting the subform fields

リンクの子フィールドとマスターフィールドの選択

Selecting the link child and master fields

黄色で強調表示されたサブフォームコントロールとコントロールプロパティを示すフォーム

Subfrom control

2、コンボの追加

サブフォームウィザードによって追加されたフィールドをコンボに変更するには、右クリックしてプロパティを自分で設定します...

Right-click for change to combo

...または、既存のコントロールを削除し、ウィザードを使用してコンボを追加できます。最初のステップは、コンボのタイプを選択することです。

Step 1 combo type

2番目のステップは、テーブルまたはクエリを選択することです

Step 2 choose table or query

ステップ3は、フィールドを選択することです

Step 3 choose fields

ステップ4はソート順を選択し、ここには表示されません。これはステップ5で、列幅を設定します

Step 4 skipped, step 5 set column widths

ステップ6は、コントロールソースを設定することです

Step 6 set Control Source

最終的に、示されているプロパティを備えたコンボボックスになります。

Subform combo and properties

最終形式

Final form

18
Fionnuala