insert语句问题

来源:百度知道 编辑:UC知道 时间:2024/09/21 17:45:40
INSERT INTO 领用 ( dep_ID, material_ID, num, [time], person, manager, info )
VALUES ((select dep_ID from 部门 where dname='后勤部'), (select material_ID from 办公用品 where material_name=forms![办公用品入库]![名称]), forms![办公用品入库]![数量], forms![办公用品入库]![时间], forms![办公用品入库]![经手人], forms![办公用品入库]![经手人], '入');
这个语句错在哪里?
问题补充:问题可能出在这里,就是dep_ID, material_ID这两个值没有在窗体里的文本框里直接给出,而是通过查询得到的(如:select dep_ID from 部门 where dname='后勤部')。但是后面的值 [time], person, manager就是在文本框里直接给出的。insert语句可以解决后者,但是解决不了前者。运行时就出问题。 提示的错误是:查询输入必须包含至少一个表或查询

INSERT INTO 领用 ( dep_ID, material_ID, num, [time], person, manager, info )
VALUES ((select dep_ID from 部门 where dname='后勤部'), (select material_ID from 办公用品 where material_name=forms![办公用品入库]![名称]), forms![办公用品入库]![数量], forms![办公用品入库]![时间], forms![办公用品入库]![经手人], forms![办公用品入库]![经手人], '入');
-----------------------
select dep_ID from 部门 where dname='后勤部' 《--仅一条记录吗?如果不是则这里处理有问题。
包括后面的select

如果想成功insert
你必须要确保 values里面的子句都只返回一条记录,否则,就像楼上说的,换成 select

这样:
INSERT INTO 领用 ( dep_ID, material_ID, num, [time], person, manager, info )
SELECT (select dep_ID from 部门 where dname='后勤部'), (select material_ID from 办公用品 where material_name=forms![办公用品入库]![名称]), forms![办公用品入库]![数量], forms![办公用品入库]![时间], forms![办公用品入库]![经手人], forms![办公用品入库]![经手人], '入';

把 values 改为 select