2017-01-07 1 views
0

おやすみ!テーブルにレコードを追加する方法、それは別のテーブルに関連していますか?

私は2つのテーブルを持っています。

表1

GENERIC [GE_ID/number] [GE_DATEIN/date] [GE_PERSON/number] + ... 

を表2

WORKFORCE [WF_ID/number] [WF_NAME/text] [WF_SHIFT/number] + ... 

[GE_PERSON]テーブル#1からのような多対一のテーブル#2から列[WF_ID]に関連しています関係。テーブル#1にいくつかのドロップダウンボックスを使ってデータを追加する簡単なフォームがあります。これらのドロップダウンボックスの1つに、テーブル#2(列[WF_NAME])からSQLステートメントで取得した名前のリストが含まれています。

テーブル#1にレコードを追加する準備ができたら、ドロップダウンボックスから選択した人物の名前を知っていますが、列[GE_PERSON]は数字で、列の番号は[WF_ID]と同じです表2の名称(列[WF_NAME])。

質問:この作業を行うには、SQL文(INSERT INTO)をどのように構築する必要がありますか?

ありがとうございました!

+0

データベース内のテーブルは、プライマリ(通常はオートナンバー)と外部キーを保持します。 * Generic *の 'GE_ID'にリファレンス的にリンクするWorkforceの列として' GE_ID'を追加する必要があります。 – Parfait

+0

私はすでに外部キー列WF_IDを指している列GE_IDを持っています。この2つの列に同じ名前を付ける必要がありますか?それとも、私のように十分ですか? – Rick

+0

すみません。GE_PERSONフィールドはWF_IDフィールドを指しています(どちらも数字です)。 – Rick

答えて

0

MS Accessのコンボボックスコントロールでは、バインドされた列をユーザーから隠し、隠しフィールドに対応する識別可能なデータ列を表示することができます。 MS tutorialのこのセクションを参照してください。これを行うと、クエリのニーズに適した番号が表示されます。非表示にし、バインドされた列として主キーを設定する

簡単な手順:

[WF Names]コンボボックスについては

  1. は、最初の列としてプロパティシートの[データ]タブの下の行ソースクエリで[WF_ID]を含めます

    SELECT [WF_ID], [WF_NAME] 
    FROM [WORKFORCE] 
    
  2. [WF_ID]1としてください。 [書式]タブの下で

  3. 列(クエリ内の各フィールドの以上) 2のカウントが、最初の列の何にも列幅を与える、のようなものを設定:今0; 2

コンボボックスのを値は、ドロップダウンリストに選択された[WF_NAME]の対応する[WF_ID]であるため、コントロールを指すクエリは有効な番号になります。

INSERT INTO [GENERIC] ([GE_PERSON]) 
VALUES (Forms!formname!WFNamesComboBox) 

SELECT * FROM [WORKFORCE] 
WHERE [WF_ID] = Forms!formname!WFNamesComboBox 
+0

私はあなたの助けに感謝してどのように表現するのか分かりません!私はこの小さな問題を解決する方法が不思議に思うまで、すべてのプロジェクトが完了しました!ありがとう - あなたは私に多くの時間と神経を保存する) – Rick

+0

素晴らしい!私は助けてうれしいです。すべての機能でアクセスが少し高密度になる可能性があります。 – Parfait

関連する問題