失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Access update语句 提示 操作必须使用一个可更新的查询Access update语句 提示

Access update语句 提示 操作必须使用一个可更新的查询Access update语句 提示

时间:2024-05-13 18:12:17

相关推荐

Access update语句 提示 操作必须使用一个可更新的查询Access update语句 提示

<script>function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}</script> 当在access中使用update语句时

如果遇到"操作必须使用一个可更新的查询"提示信息,通常时权限设置问题

但是有一种情况非常特殊,举例如下:

表A(col1,col2)

表B(col1,col2)

如何实现下述SQL的功能?

updateA,(selectcol1,sum(col2)assum_col2fromBgroupbycol1)B1

setA.col2=B1.sum_col2

whereA.col1=B1.col1;

每次执行这个SQL都报错:“Operationmustuseanupdateablequery”。

---------------------------------------------------------------

/index.asp?u1=a&u2=77FAB61E14DC

---------------------------------------------------------------

Access使用的Jet-SQL中,不能在Update语句中用不可更新的子查询,可以变通处理,用dsum()。

UPDATEASETcol2=dsum("col2","B","col1="&A.col1);

关于dsum函数,

DSum 函数

DSum函数可用于计算一组指定记录(域)中的一组值的总和。可以在 Visual Basic、宏、查询表达式或计算控件 中使用DSum函数。

例如,可以在查询的计算字段表达式中通过DSum函数来计算某一段时间内特定雇员的总销售量。或者在计算控件中使用DSum函数来显示特定产品的流水销售总额。

DSum(expr,domain, [criteria])

DSum函数包含以下参数:

说明

如果没有记录满足 criteria 参数或者域中不包含记录,那么DSum函数会返回Null值。

不论是否在宏、模块、查询表达式或计算控件中使用DSum函数,都必须仔细构造 criteria 参数,以确保它将被正确计算。

可以使用DSum函数来指定这些情况下的条件:在查询的条件行中,在查询表达式内的计算字段中,或者在更新查询的“更新到”行中。

注释可以将DSumSum函数用于总计查询中的计算字段表达式。如果使用DSum函数,将在数据分组之前计算值。如果使用Sum函数,则先进行数据分组,然后再计算字段表达式中的值。

需要显示不在窗体或报表的记录源中的字段的一组值的总和时,可以使用DSum函数。例如,假定有一个显示特定产品信息的窗体。可以在计算控件中使用DSum函数来随时统计产品的流水销售总额。

Access update语句 提示 操作必须使用一个可更新的查询Access update语句 提示 操作必须使用一个可更新的查询

如果觉得《Access update语句 提示 操作必须使用一个可更新的查询Access update语句 提示 》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。