如何将记录添加到表中,与另一个表相关?

时间:2017-01-07 22:00:08

标签: sql ms-access relationship

美好的一天!

我有两张桌子。

表1

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

表2

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

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

因此,当我准备将记录添加到表#1时,我知道从下拉框中选择的人名,但是列[GE_PERSON]是数字,我必须添加一个等于列{{ 1}}指向表#2中的名称(列[WF_ID])。

问题:我应该如何构建SQL语句([WF_NAME])才能使其工作?

谢谢!

1 个答案:

答案 0 :(得分:0)

MS Access'组合框控件允许在显示与隐藏字段对应的可识别数据列的同时向用户隐藏绑定列。请参阅MS tutorial的此部分。完成后,您将获得相关的查询需求编号。

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

  1. 对于[WF Names]组合框,请在属性表的“数据”标签下的行来源查询中添加[WF_ID]作为第一列:

    SELECT [WF_ID], [WF_NAME] 
    FROM [WORKFORCE]
    
  2. 在“数据”标签下,通过[WF_ID]设置1绑定列。

  3. 在“格式”选项卡下,将列计数设置为2(对于查询中的每个字段都设置为更多),但将列宽添加到第一列,例如: 0; 2

  4. 现在,组合框的值是下拉列表中所选[WF_ID]的相应[WF_NAME],因此指向该控件的任何查询都将是有效数字:

    INSERT INTO [GENERIC] ([GE_PERSON])
    VALUES (Forms!formname!WFNamesComboBox)
    
    SELECT * FROM [WORKFORCE]
    WHERE [WF_ID] = Forms!formname!WFNamesComboBox