如何在 table 中添加一条与另一条 table 相关的记录?

How to add a record into table, that is related to another table?

美好的一天!

我有两个 table。

TABLE 1:

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

TABLE 2:

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

table#1 中的 [GE_PERSON] 列与 table#2 中的 [WF_ID] 列是多对一关系。我有一个简单的表单,可以将数据添加到 table #1,带有几个下拉框。其中一个下拉框包含 SQL 语句从 table #2(第 [WF_NAME] 列)中获取的名称列表。

所以当我准备向 table #1 添加记录时,我知道从下拉框中选择的人名,但是 [GE_PERSON] 列是数字,我必须添加一个数字等于 [WF_ID] 列,它指向 table #2 中的名称([WF_NAME] 列)。

问题:我应该如何构建 SQL 语句 (INSERT INTO) 才能使其正常工作?

谢谢!

MS Access 的组合框控件允许对用户隐藏绑定列,同时显示与隐藏字段对应的可识别数据列。请参阅 MS tutorial 的这一部分。一旦你这样做,你将有一个相关的号码来满足你的查询需求。

隐藏主键并将主键设置为绑定列的简要步骤:

  1. 对于 [WF Names] 组合框,在 属性 的“数据”选项卡下的 行源 查询中包含 [WF_ID] Sheet 作为第一列:

    SELECT [WF_ID], [WF_NAME] 
    FROM [WORKFORCE]
    
  2. 在“数据”选项卡下,通过放置 1.

  3. 使 [WF_ID] 绑定列
  4. 在“格式”选项卡下,将 列数 设置为 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