2017-01-09 12 views
0

アクセスでは、データを接合テーブルに入力できる単一のフォームが必要です。関係は次のとおりです。フォームから接合テーブルへのデータの入力Microsoft Access

1つのテーブルには植物の名前と基本情報があり、別のテーブルには土壌水分があり、別のテーブルには特定の植物が見つかる郡名があります。 1つの植物は多くの郡で見つけられ、多くの植物は1つの郡で見つかるかもしれません。水分も同じです。したがって、このデータベースは多対多の関係にする必要があります。どのようにしてplantIDとその工場の郡と水分を取り、ジャンクションテーブルにエントリを作成するフォームを作ることができますか?私はこの問題に適切な方法で接していますか?

Relationships

答えて

0

だけジャンクションテーブルにバインドされたフォームを作成し、このフォームからジャンクションテーブルにレコードを追加する必要があると仮定すると。

ウィザードを使用する場合、新しいフォームでは各フィールドがテキストボックスとして表示されます。

外部キーであるフィールドごとに、テキストボックスをコンボボックスに変更します。行ソースプロパティを使用して、PKが存在するフィールドの専用テーブルから情報を取得します。

したがって、例えば、MoistureIDは、その行ソースであろうコンボボックスになるであろう:

SELECT MoistureID, Moisture 
FROM Moisture; 

IDフィールドは、次いで、コンボボックスの出力になりますが、リストが開いたときに水分フィールドを表示します。 「列幅」プロパティを0";1"に変更してIDフィールドを非表示にすることはできますが、「列数」プロパティが2であることを確認してください。

次に、フォームのデータ入力プロパティを「はい」に変更して、既存のジャンクションはフォームのビューから記録されます。

フォームビューでは、プラントIDとその他の選択肢を選択し、フォームのタブ順の末尾にタブを置くと、ジャンクションレコードがジャンクションテーブルに追加され、フォームのコントロールがクリアされます。

このフォームから他のテーブルにレコードを追加する必要がある場合は、アンバウンドフォームを作成し、マクロまたはVBAを使用して追加を処理する必要があります。

+0

ありがとうございました。 1つのフォームで複数の郡エントリを追加する方法がありますか?たとえば、ジョンソンとアンダーソン郡の両方で乾いた湿った水分の中にあるローズを追加したいと思います。 1つのフォームですべての情報を追加できますか?そうでない場合、別の解決策がありますか? –

+0

郡、湿度、および植物IDがすでに存在する場合、このフォームは組み合わせごとに1つのエントリーを必要とします。複数の組み合わせを一度に追加するには、マクロまたはvbaをアンバウンド形式で使用する必要があります。可能ですがかなり複雑です。水分と郡のフィールドに複数選択リストボックスを使用すると、必要なデータと機能が得られるかもしれませんが、コーディングロジックにはデータモデルで使用するルールに関する詳細情報が必要になります。 – MoondogsMaDawg

関連する問題