如何在 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 的这一部分。一旦你这样做,你将有一个相关的号码来满足你的查询需求。
隐藏主键并将主键设置为绑定列的简要步骤:
对于 [WF Names]
组合框,在 属性 的“数据”选项卡下的 行源 查询中包含 [WF_ID]
Sheet 作为第一列:
SELECT [WF_ID], [WF_NAME]
FROM [WORKFORCE]
在“数据”选项卡下,通过放置 1
.
使 [WF_ID]
绑定列
在“格式”选项卡下,将 列数 设置为 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
美好的一天!
我有两个 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 的这一部分。一旦你这样做,你将有一个相关的号码来满足你的查询需求。
隐藏主键并将主键设置为绑定列的简要步骤:
对于
[WF Names]
组合框,在 属性 的“数据”选项卡下的 行源 查询中包含[WF_ID]
Sheet 作为第一列:SELECT [WF_ID], [WF_NAME] FROM [WORKFORCE]
在“数据”选项卡下,通过放置
1
. 使 在“格式”选项卡下,将 列数 设置为 2(或查询中每个字段的更多数),但给出 列宽 第一列什么都没有,比如:
0; 2
[WF_ID]
绑定列
现在组合框的值是下拉列表中所选 [WF_NAME]
对应的 [WF_ID]
,因此任何指向控件的查询都将是一个有效数字:
INSERT INTO [GENERIC] ([GE_PERSON])
VALUES (Forms!formname!WFNamesComboBox)
SELECT * FROM [WORKFORCE]
WHERE [WF_ID] = Forms!formname!WFNamesComboBox