想对表中独生子的关系字段由"长子"批量更新为"子",用更新查询 :UPDATE 族人信息 SET 族人信息.关系 = "子" WHERE (((族人信息.关系)="长子") AND ((DCount("*","族人信息","关系 ALIKE '%子' AND 承上码=" & [承上码]))=1));可以实现.但加上CurrentDb.Execute 如下:
CurrentDb.Execute "UPDATE 族人信息 SET 族人信息.关系 = '子' WHERE (((族人信息.关系)='长子') AND ((DCount('*','族人信息','关系 ALIKE '%子' AND 承上码=' & [承上码]))=1));" 出错,,看了许多介绍不得其解.只好
请高手帮助
roych的帮助使我理清了头绪,找到了办法,问题得到解决,谢谢roych!!!
改成这样就达到目的了: CurrentDb.Execute "UPDATE 族人信息 SET 族人信息.关系 = ""子"" WHERE (((族人信息.关系)=""长子"") AND ((DCount(""*"",""族人信息"",""关系 ALIKE '%子' AND 承上码="" & [承上码] ))=1));"
大致应该是这样:
CurrentDb.Execute "UPDATE 族人信息 SET 族人信息.关系 = '子' WHERE (((族人信息.关系)='长子') AND ((DCount('*','族人信息','关系 ALIKE '%子' AND 承上码='" & [承上码]&"))=1));"
变量部分需要单独拎出来。前后加上双引号。请自行对比你的原代码:
CurrentDb.Execute "UPDATE 族人信息 SET 族人信息.关系 = '子' WHERE (((族人信息.关系)='长子') AND ((DCount('*','族人信息','关系 ALIKE '%子' AND 承上码=' & [承上码]))=1));"