Office中国论坛/Access中国论坛

标题: 更新查询时可不可以一次更新多个字段呢? [打印本页]

作者: ntqxxx    时间: 2011-9-22 20:10
标题: 更新查询时可不可以一次更新多个字段呢?
例如 代码字段是“1”的在名称中就更新为“一年级”
代码字段是“2”的在名称中就更新为“二年级”
以此类推,一直更新到“六年级”,
有没有办法一次就更新六个年级,我目前只会一次更新一个年级,求高手指点!谢谢!
作者: 咱家是猫    时间: 2011-9-22 20:59
描述的不是太明白,你是要更新多个字段的值,还是一个字段要根据条件更新为若干个值?
作者: todaynew    时间: 2011-9-22 21:01
用iif函数

作者: 咱家是猫    时间: 2011-9-22 21:05
如果是要一次性更新多个字段的值,可以如下:
Update 表名 Set 字段1=值1, 字段2=值2,...

如果是更新一个字段值,只是要根据条件更新为不同的值,可以如下:
Update 表名 Set 字段名=IIF(条件,值1,值2)
如果后面的判断很复杂,可以多级套IIF,但我还是建议你在公共模块里用Public声明一个Function来处理.

如果是想根据条件判断要更新哪个字段的值,可以如下:
Update 表名 Set IIF(条件,字段名1,字段名2) =值

大致就是这样吧,上面写的不很规范,希望你能理解意思.
作者: ntqxxx    时间: 2011-9-23 16:24
补充一下:有两个字段:一个字段是 年级编号  一个是年级名称
想用一个更新查询实现:
如果年级编号字段中的数值是1  在其后面的对应年级名称字段中就  更新为 一年级
如果年级编号字段中的数值是2  在其后面的对应年级名称字段中就  更新为 二年级
如果年级编号字段中的数值是3  在其后面的对应年级名称字段中就  更新为 三年级
我现在是建立了6个查询,一个一个点击的。





作者: tzh16000    时间: 2011-9-23 17:30
一个方法就4楼的后一个方法,可以用 update   set  case
还有就是建个宏,把6个查询一起运行,只要一次就解决了
即使不建宏,6个查询各运行一次也解决了
作者: todaynew    时间: 2011-9-23 17:32
本帖最后由 todaynew 于 2011-9-23 17:34 编辑
ntqxxx 发表于 2011-9-23 16:24
补充一下:有两个字段:一个字段是 年级编号  一个是年级名称
想用一个更新查询实现:
如果年级编号字段中 ...


假设你的表名为学生表,你的年级编号字段为数字型,则:

Update 学生表 Set 年级名称 =Choose([年级编号],"一年级","二年级","三年级","四年级","五年级","六年级")

如果年级编号是字符型,则:

Update 学生表 Set 年级名称 =Choose(val([年级编号]),"一年级","二年级","三年级","四年级","五年级","六年级")
作者: ntqxxx    时间: 2011-9-26 10:41
谢谢!这里的版主真是乐于助人。{:soso_e100:}




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3