访问 2013 UPDATE 查询

Access 2013 UPDATE query

嘿,我正在学习 Access 2013,我正在尝试构建一个更新查询(如果找到特定号码),我已经做到了,因此我可以为一个号码工作,但我有更多的识别号码需要在同一个号码中更新查询,我不知道如何处理。

这是我的 SQL,下面的数字是我要识别的数字,然后转向 REQUESTRESPONSE,识别号码始终位于字符 6 和 2长 ("MsgString",6,2)

    UPDATE tblMsgs SET tblMsgs.MsgType = IIf(Mid("MsgString",6,2)="22","RESPONSE","REQUEST")
    WHERE (((Mid([MsgString],6,2))="22" Or (Mid([MsgString],6,2))="14"));

   if 19 = REQUEST
   if 59 = RESPONSE
   if 22 = REQUEST
   if 62 = RESPONSE
   if 14 = REQUEST
   if 54 = RESPONSE
   if 2F = REQUEST
   if 6F = RESPONSE
   if 7E = REQUEST

我现在对每个数字都进行了一次查询,但这并不好(无效!),有没有办法在同一个查询中完成所有这些操作?谢谢

您可以在 IIf 中使用 OR:

UPDATE tblMsgs SET tblMsgs.MsgType = 
    IIf(Mid("MsgString",6,2)="22" OR Mid("MsgString",6,2)="59" OR ..., "RESPONSE", "REQUEST")
WHERE ...

但是在两个查询中执行此操作会更直接且可读性更好,一个用于 "RESPONSE",一个用于 "REQUEST"。

您也可以使用 the IN operator 指定值列表。

UPDATE tblMsgs SET tblMsgs.MsgType = "RESPONSE"
WHERE Mid([MsgString],6,2) IN ("22", "59", "62", ...)

UPDATE tblMsgs SET tblMsgs.MsgType = "REQUEST"
WHERE Mid([MsgString],6,2) IN ("14", "19", "22", ...)

(您的列表似乎有错误,两者都定义了“22”)