0

2010 Access データベースに 2 つのテーブルがあります。1 つは顧客用、もう 1 つは請求書用です。新しい請求書の上部にルックアップ フィールドがあるフォームを作成しました。

私がやろうとしているのは、顧客を検索して選択すると、その情報が請求書フィールドの顧客情報に自動的に入力されることです (そのため、再入力する必要はありません)。その後、保存時に請求書テーブルにコピーする必要があります。

これには一対多の関係が必要だと思いますか?これはかなり基本的なステップのように思えますが、答えを見つけるのに苦労しているので、助けていただければ幸いです:)

4

1 に答える 1

1

次のようにテーブルを設定します。

お客様

  • ID
  • 顧客名
  • 他の分野...

請求書

  • ID
  • CustomerID (これは Customers テーブルへの外部キーです)
  • 他の分野...

次に、フォームで請求書テーブルを (主に) フォーム レコードソースに使用する必要があります。

  1. コンボ ボックスを追加し、その ControlSource をInvoicesテーブルの CustomerID フィールドに設定します。
  2. コントロールの RowSourceType を Table/Query に設定します。
  3. RowSource をSELECT ID, CustName FROM Customers ORDER BY CustName
  4. BoundColumn = 1 に設定
  5. LimitToList を設定 = はい
  6. ColumnCount = 2 を設定します。
  7. ColumnWidths = 0 に設定します。1 (2 番目の数字は最初の 0 ほど重要ではありません。最初の 0 は、ID 列を非表示にするようにアクセスに指示します)

ユーザーは、コンボボックス (プルダウン) から請求書に関連付ける顧客を選択します。コピーするフィールドはありません。請求書の顧客情報が必要な場合は、次のように顧客テーブルと請求書テーブルを結合するだけです。

SELECT Customers.*, Invoices.* 
FROM Invoices INNER JOIN Customers ON Invoices.CustomerID = Customers.ID

この例では、わかりやすくするためにアスタリスクを使用していることに注意してください。SELECT クエリで使用する列を明示的に指定することをお勧めします。

于 2011-04-14T18:48:55.350 に答える