Access Sql插入子查询不工作

Access Sql插入子查询不工作,sql,ms-access,Sql,Ms Access,我正在设计一个web表单,以便在Microsoft Access 2010中发布到SharePoint网页。我有一个表单,它使用一个组合框来选择一个团队名称。我需要在employee表中输入与该团队名称对应的团队id。这就是我到目前为止所做的: INSERT INTO Employee ( Employee_Name, Team_ID ) VALUES ([Forms]![Add Employee]![txtName], (SELECT MAX(Team.Team_ID) FROM Team,

我正在设计一个web表单,以便在Microsoft Access 2010中发布到SharePoint网页。我有一个表单,它使用一个组合框来选择一个团队名称。我需要在employee表中输入与该团队名称对应的团队id。这就是我到目前为止所做的:

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]));
这给了我一个错误的说法

查询输入必须至少包含一个表或查询


如何修复此问题?

您可以使用
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];