我正在设计一个Web表单以发布到Microsoft Access 2010中的SharePoint网页。我有一个表单,它使用组合框来选择团队名称。我需要将与该团队名称对应的团队ID输入到employee表中。这就是我到目前为止所做的:
INSERT INTO Employee ( Employee_Name, Team_ID )
VALUES ([Forms]![Add Employee]![txtName], (SELECT MAX(Team.Team_ID)
FROM Team, Employee
WHERE [Team]![Team_Name]=[Forms]![Add Employee]![cmbxTeam]));
它给我一个错误说
查询输入必须至少包含一个表或查询。
我该如何解决这个问题?
答案 0 :(得分:0)
您可以使用VALUES
子句指定硬编码值,也可以使用SELECT
语句生成要插入的内容。在这里,你将两者结合起来。代替:
INSERT INTO Employee ( Employee_Name, Team_ID )
SELECT
[Forms]![Add Employee]![txtName],
MAX(Team.Team_ID)
FROM Team, Employee
WHERE [Team]![Team_Name]=[Forms]![Add Employee]![cmbxTeam];
稍微不相关,当您不需要SELECT中的Employee表时,为什么要交叉加入员工和团队?
这应该是等效的,而且要快得多:
INSERT INTO Employee ( Employee_Name, Team_ID )
SELECT
[Forms]![Add Employee]![txtName],
MAX(Team.Team_ID)
FROM Team
WHERE [Team]![Team_Name] = [Forms]![Add Employee]![cmbxTeam];