访问 2013 UPDATE 查询
Access 2013 UPDATE query
嘿,我正在学习 Access 2013,我正在尝试构建一个更新查询(如果找到特定号码),我已经做到了,因此我可以为一个号码工作,但我有更多的识别号码需要在同一个号码中更新查询,我不知道如何处理。
这是我的 SQL
,下面的数字是我要识别的数字,然后转向 REQUEST
或 RESPONSE
,识别号码始终位于字符 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”)
嘿,我正在学习 Access 2013,我正在尝试构建一个更新查询(如果找到特定号码),我已经做到了,因此我可以为一个号码工作,但我有更多的识别号码需要在同一个号码中更新查询,我不知道如何处理。
这是我的 SQL
,下面的数字是我要识别的数字,然后转向 REQUEST
或 RESPONSE
,识别号码始终位于字符 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”)