设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12
返回列表 发新帖
楼主: zyp
打印 上一主题 下一主题

[查询] 更新查询提示"操作必须使用一个可更新的查询"

[复制链接]
11#
 楼主| 发表于 2011-3-15 15:20:38 | 只看该作者
不过这种查询相比ADP中的查询要慢很多(SQL Server安装在同一台电脑,表A有1000笔记录,表B有5000条记录测试,ADP中不用1秒就完成了,在MDB中至少要3秒以上,每次执行时间都有差异彩), 在ADP中,用下面的查询就可以了, 也不会出现什么错误提示:
UPDATE A set A.sl=Hj.hjsl FROM A INNER JOIN
       (SELECT id,sum(sl2) AS hjsl FROM b GROUP BY id) HJ
ON a.id=hj.id
WHERE A.sl<>Hj.hjsl
在测试速度时我没有加下红色字段这行的.
当然,上面代码只是举一个例子,还需做其它处理,比如上面说过有入库后面又有删除的,需要再加一条更新语名来执行.
12#
 楼主| 发表于 2011-3-15 15:25:44 | 只看该作者
roych 发表于 2011-3-15 10:35
如果不想建太多查询,也可以这样:
UPDATE A SET A.SL = DSum("SL","B","ID='" &  & "'") WHERE ((DLookUp ...

roych这个也很不错, 可以省略查询C了, 结合我的实际应用, 我想我应该这样改一下:

UPDATE A SET A.SL=nz(dsum("[sl2]","B","[id]="& a.id),0)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-9-28 15:27 , Processed in 0.331114 second(s), 24 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表