12

私はアクセスするのが初めてで (2003 バージョンしか持っていません)、夢中になっています。私は一般的にDBの初心者であることも考慮してください。今、私は非常に混乱しています...助けてください。私が持っているすべての本をカタログ化するためのデータベースを設計しようとしています。テーブルを作成し、リレーションシップを設定しました私のDBの画像 ; 多対多の関係にある「本」に関連するテーブルがいくつかあります (たとえば、著者: 各本には複数の著者を含めることができ、各著者には複数の本を「所有」させることができます)。多数 (例: 書籍の種類: 1 冊の書籍は 1 種類のみですが、その種類の書籍は多数存在する可能性があります。ここで、単一のフォーム (必要に応じてサブフォームを含む) を作成して、テーブルにデータを入力したいと思います。新しい本を追加して、たとえば既存の著者から選択したり、著者を新たに追加したりできます。1 対多の関係のデータについても同様です。

これどうやってするの?

私は本当に迷っています。複数のフォームが必要で、それらをメインフォームのサブフォームとして追加するには、クエリが必要ですか?

4

1 に答える 1

20

上記の設計には、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

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

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


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

ステップ1ウィザードの使用

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

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

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

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

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

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

サブフロムコントロール

2、コンボを追加する

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

右クリックしてコンボに変更

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

ステップ1コンボタイプ

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

ステップ2テーブルまたはクエリを選択します

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

ステップ3フィールドを選択します

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

ステップ4はスキップされ、ステップ5は列幅を設定します

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

ステップ6コントロールソースを設定します

示されているプロパティを備えたコンボボックスができあがります

サブフォームのコンボとプロパティ

最終フォーム

最終フォーム

于 2012-08-26T17:13:00.143 に答える