3

問題

私は現在、クライアント名ではなくクライアント ID を中心とするように MS Access データベースを変更しています。ただし、すべてのフォームは依然としてクライアント名に基づいています。これをクライアント ID に基づいて変更する必要がありますが、ユーザーにはクライアント名として表示されるようにします。

構造

先に進む前に、関連する 2 つのテーブルについて説明する必要があります。

ClientTable:
- ClientID (PK)
- ClientName (インデックス付き、重複なし)

EntityTable:
- EntityName (CK
、重複不可) - ClientID (CK、重複可)
- ClientName (私の過去の構造の残骸。この問題を整理したら、これは必要ないと思います)

重要な関係: 1 つのクライアントに多くのエンティティがある

複合キー (CK) にも十分な理由がありますが、それについては説明しません。全体の構造は上に示したものよりもはるかに複雑です。

フォーム

ではフォームに戻ります。現在、EntityName テキスト ボックスと ClientName ドロップダウン ボックスを含む「エンティティ」フォームがあります。

私が実現したいのは、Client Name ドロップダウン ボックスがユーザーに対して視覚的および機能的に同じであることです (つまり、新しいエンティティを作成するときに、ユーザーはクライアント名を選択します) が、実際にクライアント ID を選択する必要があります。それをそのレコードに関連付けます。

これはかなり一般的な問題だと思いますが、私のブラウジングでは解決策が見つかりませんでした。何か案は?

4

1 に答える 1

2

これは、Row Source を次のように変更することで簡単に解決できます。

SELECT ClientID, ClientName & SomeIdentifierForDups FROM ClientTable

変更中...

Control source : ClientID  
Column count   : 2
Column widths  : 0; 2

ここで、ClientID はフォームのバインドされたテーブルを参照します。

于 2012-04-20T07:31:51.290 に答える