Office中国论坛/Access中国论坛

标题: 各位老师请帮助看看关于多条件更新,VBA如何写?谢谢 [打印本页]

作者: yanwei82123300    时间: 2018-12-10 19:19
标题: 各位老师请帮助看看关于多条件更新,VBA如何写?谢谢

各位老师请帮助看看关于多条件更新,VBA如何写?:
一个例子:关于会员信息变更的问题:
1:会员号变更,原会员号下的信息不变,只修改会员号
If IsNull(Me!变更后会员号) = True Then
  MsgBox "会员号没有被修改"
' Exit Sub
Else
SQLTEXT = "UPDATE [tbl会员表] SET [tbl会员表].[会员号] = Forms![frm会员信息变更]!变更后会员号 WHERE [会员号]= '" & Forms![frm会员信息变更]!会员号 & "'"
DoCmd.RunSQL SQLTEXT
2:会员号不变,会员号下面的其他字段变更,例如,姓名变更
If IsNull(Me!变更后姓名) = True Then
  MsgBox "姓名没有被修改"
' Exit Sub
Else
SQLTEXT = "UPDATE [tbl会员表] SET [tbl会员表].[姓名] = Forms![frm会员信息变更]!变更后姓名 WHERE [会员号]= '" & Forms![frm会员信息变更]!会员号 & "'"
DoCmd.RunSQL SQLTEXT
SQLTEXT = "UPDATE [tbl会员表] SET [tbl会员表].[曾用名] = Forms![frm会员信息变更]!姓名 WHERE [会员号]= '" & Forms![frm会员信息变更]!会员号 & "'"
DoCmd.RunSQL SQLTEXT
MsgBox "姓名被修改"

3: 会员号变更,同时原会员下面的信息同时变更,请问咋写呢?谢谢
请问上面的语句可以写个循环吗?如何写请帮助看看,感谢

作者: tmtony    时间: 2018-12-11 16:35
一样写哦,只是set 字段1=值1,字段2=值2  where 会员=旧会员
作者: yanwei82123300    时间: 2018-12-11 18:58
我把例子上传,请帮助看看,谢谢
作者: roych    时间: 2018-12-13 12:15
如果有很多这样的变更。个人建议创建一个宽表,把变更记录录入到宽表里,再直接追加到信息表里。这样也方便追溯(当然用户ID是不给改的)。
表结构类似于:
ID  用户ID  会员号 姓名……会员号New 姓名New……修改日期 修改人
1、在窗体输入需要修改的部分。然后依次追加进去:
2、把剩下的空值,更新为原值。这时候就得到一条完整的记录了。
3、把这条完整的记录,按用户ID(必要的话,可以加上max(ID)作为条件),将New部分更新到信息表。
作者: yanwei82123300    时间: 2018-12-13 18:20
roych 发表于 2018-12-13 12:15
如果有很多这样的变更。个人建议创建一个宽表,把变更记录录入到宽表里,再直接追加到信息表里。这样也方便 ...

谢谢roych老师提供的思路和方法。我试试
作者: zpy2    时间: 2018-12-16 14:33
yanwei82123300 发表于 2018-12-10 19:19
各位老师请帮助看看关于多条件更新,VBA如何写?:
一个例子:关于会员信息变更的问题:
1:会员号变更 ...

3: 会员号变更,同时原会员下面的信息同时变更,请问咋写呢?谢谢
直接删掉,插入新记录吧。
循环 do util

loop




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