0

アドレスを格納する Access 2010 のデータベースに取り組んでいます。人物と住所を別々に保存し、他の 2 つのテーブルを介してそれらを関連付けることができるように、慎重にテーブルを設計しました (人物間の関係も、住所とは別に保存する必要があります)。

次の表があります (この質問では、 と に焦点を当てていますPERSON) RELATIONSHIP

    PERSON            RELATIONSHIP           ADDR_REL             ADDR
    ------------      ------------           -----------          -----------
(PK)PERSON_ID     (FK)PERSON_ID          (FK)RELATIONSHIP_ID  (PK)ADDR_ID
    FIRST          (K)RELATIONSHIP_ID    (FK)ADDR_ID              ADDR_LINE1
    LAST              RELATIONSHIP_TYPE  (PK)ADDR_REL_ID          ADDR_LINE1
                  (PK)REL_PK                                      ...

VBAを使用せずに(可能であれば)、フォームに特定のを表示し、一致するPERSONのsを表示するサブフォームを作成したいが、元のレコードは表示しない(親フォームに表示されているレコード)サブフォームの結果セットで。 PERSONRELATIONSHIPPERSON

参考までに: 私は VBA でこれに対する解決策を自分で構築することができますが、それなしでこれをやってのける方法であるように思われます。

非表示フィールド、リンクされたサブフォーム、およびカスタム クエリを試しましたが、関係にあるすべての人が常にサブフォームに表示されます (または結果がまったく表示されないか、パラメーター プロンプトが表示されます)。コードを書かずにこれを打ち負かす方法は本当にありませんか?

4

2 に答える 2

1

はいあります。Accessを使い始めてしばらく経ちました。ある時点であなたはとても親密だったように聞こえます。

まず、メイン/マスター フォームを作成します。次に、サブフォーム/詳細フォームを作成します。詳細フォームをマスター フォームにドラッグするだけで、関係が正しければ、親子関係が自動的に設定されます。

親子関係を設定したら、サブフォーム/詳細フォームのレコード ソース情報を変更します。テーブルに基づいている場合は、クエリに変更します。これは、フォーム デザイン ビューで行うことができます。

簡単な答えは、クエリ ビルダーではフィールドを非表示にできるということです。あなたの場合、おそらくサブフォームの Person_ID フィールドを非表示にしたいと思うでしょう。

クエリには、親子関係が維持されるようにキー フィールドが含まれている必要があります。

また、サブフォームがテキスト ボックスを含むフォームである場合は、表示したくないテキスト ボックスを削除することもできます。

正解はイエスですが、十分に説明しましたか?

于 2013-09-25T04:03:35.650 に答える