0

次のシナリオで MS Access 2007 フォームを構成する方法についてアドバイスが必要です。

私のテーブル構造は次のとおりです。

製品
++++++
ID (pk)製品

...

タグ
++++
ID (pk)
TagName

ProductTag
+++++++++++
ProductID (fk)
TagID (fk)

その基準を満たすすべての製品 (および各製品の十数個の属性) のリストを検索して表示できるメイン フォームが必要です (製品の連続フォーム ビューを考えています)。

ここまでは順調ですね。問題はありません。

現在、現在フォーカスのある製品にリンクされている連続フォーム製品リストの右側に「タグ付け」フォームが必要です。タグ パネルには、常にすべてのタグの完全なリストが表示されます。各タグの横に、そのタグが現在選択されている製品に適用されるかどうかをオンまたはオフにできるチェックボックスが必要です。また、その場で (メイン フォームを離れることなく) タグを追加できるようにしたいと考えています。

私は 3 つのフォームを使用していると思いますが、ここでアドバイスが必要
です

-タグフォーム (メインのサブフォームも)

しかし、このアプローチでは、2 つのサブフォームを相互にリンクするのに問題があります。実際、チェックボックスをオンまたはオフにするとProductTagテーブルのレコードを作成/削除するすべてのタグのリストを表示する方法を理解するのに非常に苦労しています.AccessにCRUDをできるだけ多く実行してもらいたいです可能。イベントで SQL INSERTS/DELETES のスクリードを書くことは避けたいと思います。Access に要求しすぎていませんか?

お役に立てれば幸いです。あなたの返信で、どの RecordSource および Master/Child Link フィールドおよび/またはイベント トリガーについて話し合うことができれば、それは大きな助けになるでしょう。

4

1 に答える 1

1

まず、バインドされていないチェックボックスが連続した形で機能するとは思わないため、チェックボックスを使用してこれが可能だとは思いません。

私の解決策は次のとおりです。製品フォームの子として TagList フォームで動作するようになりましたが、他の方法があります。

最初に、製品フォームで現在選択されている製品に一致するすべてのレコードを選択する ProductTag テーブルにクエリ 'qryProductTags' を作成します。

次に、2 番目のクエリを作成します - タグ テーブル左外部結合 (Access では結合タイプ 2) qryProductTags. このクエリの出力に、TagID、TagName、および fkProductID を含めます

このクエリは、Tags タブのすべてのレコードを選択する必要があります。現在の製品の ProductTags テーブルにタグが存在する場合は、ProductID が表示されます。存在しない場合、このフィールドは null になります。

この 2 番目のクエリを、タグ サブフォームのレコード ソースとして使用します。次に、タグ リストの fkProductID フィールドの値が null かどうかに応じて、ProductTag テーブルにレコードを挿入または削除するクエリを実行するイベント (タグ名をダブルクリック) を添付します。

TagList フォームで条件付き書式を使用して選択したタグを表示したり、別のフォームを使用して現在の製品のタグを表示したりできます。

これが理にかなっていることを願っています..ここにファイルをアップロードする方法が表示されないため、「クイックアンドダーティ」の実例をここで見つけることができます: https://drive.google.com/folderview?id= 0B0J_JolN6f8GOXpKVVZJTHVJTWM&usp=共有

于 2013-10-22T10:51:40.083 に答える