Henry,这段代码只能用于全部字段复制,如果我只需要 where a.MenuToCycleCode=700001呢,这样编号就不连续了,有办法解决吗?作者: Henry D. Sy 时间: 2011-12-29 13:38
1.把查询分两步
即按where a.MenuToCycleCode=700001先建立一个查询作为原表,然后追加到目标表
2.用ado循环追加作者: Henry D. Sy 时间: 2011-12-29 13:49
假设新建立的查询为AA
那么AA的语句应该是
SELECT tblMKCycleToMenuDetail.*
FROM tblMKCycleToMenuDetail
WHERE (((tblMKCycleToMenuDetail.MenuToCycleCode)=700001));
复制代码
然后,追加语句如下:
INSERT INTO tblMKCycleToMenuDetail ( MenuDetailChName, MenuDetailCode )
SELECT a.MenuDetailChName, (SELECT count(*)
FROM tblMKCycleToMenuDetail b
WHERE b.MenuToCycleCode=700001 AND b.id<=a.id)+DMax("MenuDetailCode","tblMKCycleToMenuDetail") AS 表达式1
FROM AA AS a;
复制代码
作者: Henry D. Sy 时间: 2011-12-29 13:52
当然,你想要写成一个也可以
INSERT INTO tblMKCycleToMenuDetail ( MenuDetailChName, MenuToCycleCode, MenuDetailCode )
SELECT a.MenuDetailChName, a.MenuToCycleCode, (
SELECT count(*)
FROM tblMKCycleToMenuDetail b
WHERE b.MenuToCycleCode=700001 AND b.id<=a.id)+DMax("MenuDetailCode","tblMKCycleToMenuDetail") AS 表达式1
FROM [SELECT tblMKCycleToMenuDetail.*
FROM tblMKCycleToMenuDetail
WHERE (((tblMKCycleToMenuDetail.MenuToCycleCode)=700001))]. AS a;
复制代码
作者: jakyky 时间: 2011-12-29 14:00
Henry D. Sy 发表于 2011-12-29 13:49
假设新建立的查询为AA
那么AA的语句应该是然后,追加语句如下: