7

Microsoft Access 2013 ベースの情報システムを開発しています。クライアントの要求の 1 つは、使用可能な値を含むコンボ ボックスを使用してデータ入力プロセスを簡素化することでした。

たとえばagentID、ユーザーがコンボボックスからエージェント名を選択できるように依頼されたクライアントを入力する代わりに、他の同様のフィールドと同じロジックを使用します。

簡単
に言うと、値 ID を入力する必要をできるだけ避け、ユーザーがコンボ ボックスから値を選択できるようにする必要があります。

Microsoft Access にはルックアップ ウィザードが組み込まれているため、ユーザーはテーブル フィールドを別のテーブルの特定のフィールドにバインドできます。たとえば、ルックアップ ウィザードを使用してリンクcityIDtblVoyageたり、tblCities特定cityIDの文字を入力するのではなく、コンボ ボックスから都市を選択したりできます。都市 ID をフィールドに入力します。

すべてが素晴らしいように見えますが、混乱する瞬間が 1 つあります。DB コースで学んだことですが、データベースを構築して操作するには、テーブル間の関係 (1:1、1:M、M:N) を定義する必要がありますが、それを行うと使用できません。テーブル間のリレーションシップを既に定義しているため、ルックアップ ウィザードを使用します。その結果、ユーザーはコンボ ボックスから ID を選択するのではなく、すべての ID を手動で入力する必要があります。

だから、私は欲しい:

  1. Access ルックアップ ウィザードを使用する正確なタイミングと、テーブル間のリレーションシップを定義するタイミングを理解する。
  2. コンボ ボックスから目的の項目を選択する代わりに、ユーザーがデータを入力しなければならない回数を正しく最小化する方法。
4

1 に答える 1

8

ここでの一般的なコンセンサスは、ルックアップ フィールドは避けるべきだということです。これらは、実際には「適切な」ルックアップ テーブルを持つための近道にすぎず、テーブル レベルで実際に何が起こっているかを隠します。たとえば、値が「小」、「中」、「大」の [サイズ] のルックアップ フィールドがあるとします。表を見ると という言葉が見えますが、表に 1、2、3 などの数字が実際に含まれている可能性は十分にあります。

UPDATE tblName SET Size="Large"

実際に行う必要があるのは

UPDATE tblName SET Size=3

(「適切な」別のルックアップ テーブルを維持すると、メイン テーブルのフィールドは実際にフィールドにあるものを示します: ルックアップ テーブルで選択されたアイテムの PK 値。ルックアップ テーブルに格納され、メイン テーブルのフィールドにバインドされます。)

さらに混乱を招くのは、ルックアップ ウィザードに「複数選択を許可する」オプションが用意されているため、フィールドに複数の値 (並べ替え) を保持できるようにすることです。これは明らかに、Access が SharePoint でより適切に機能するように追加されたものであり、実際にその機能を使用する必要があるのはそのときだけです。他のケースの圧倒的多数では、複数の選択を格納するために別個の子テーブルを明示的に維持する方が適切です。

編集

コンボ ボックス ウィザードは、コンボ ボックスをそのレコード ソース (ルックアップ テーブル) にリンクし、その値をデータ テーブルのフィールドにバインドするプロセスを案内します。たとえば、[Agents] のルックアップ テーブルを既に設定しているとします。

ID  AgentName
--  ---------
 1  Gord     
 2  Angie    

...[Accounts] のデータ テーブル

ID  agentID  AccountName
--  -------  -----------

[Accounts] テーブルを として新しいフォームを作成しますRecord Source。フォームにコンボ ボックスを追加しようとすると、ウィザードが実行され、「コンボ ボックスに値を取得する方法を教えてください」と尋ねられます。「コンボ ボックスで別のテーブルまたはクエリから値を取得する」を選択します。

cbw1.png

次のステップでは、[Agents] テーブルを選択します。

cbw2.png

次に、[AgentName] を表示することをウィザードに伝えます。

cbw3.png

並べ替え順序を選択した後 (必要に応じて)、列幅を確認します。[キー列を非表示にする (推奨)] を有効のままにします。

cbw4.png

最後に、チェック ボックスの値をどうするかを選択できます。これは、[Accounts] テーブルの [agentID] フィールドに「バインド」する場所です。

cbw5.png

コンボ ボックスに[agentName]はユーザーが選択できるように が表示されますが、それ.Valueは数値[Agents].[ID]であり、それが に格納されることに注意して[Accounts].[agentID]ください。

于 2013-05-04T21:58:29.023 に答える