[英]MS Access Data type mismatch in expression only in where statement
[英]Get Data Type Mismatch error when using Replace Function in WHERE clause of MS Access Update statement
我在MS Access 2013中执行以下UPDATE语句时收到错误消息“条件表达式中的数据类型不匹配”。
UPDATE tblTasks
SET tblTasks.IconFilePath = "C:\Images\john.smith.jpg"
WHERE (((Replace([PersonResponsible]," ",""))="Smith,John")
AND ((Len([PersonResponsible]))>0));
当我从WHERE子句中删除Replace函数调用时,该语句执行无错误。
PersonResponsible字段的数据类型为Short Text(255) 。 我尝试将Replace调用包装在CStr和NZ中,但是仍然出现数据类型不匹配错误。
任何想法表示赞赏。
谢谢
如果[PersonResponsible]允许为空,则将SQL更改为:
UPDATE tblTasks
SET tblTasks.IconFilePath = "C:\Images\john.smith.jpg"
WHERE (((Replace(Nz([PersonResponsible],"")," ",""))="Smith,John")
AND ((Len(Nz([PersonResponsible],"")))>0));
但实际上,您可以将其简化为:
UPDATE tblTasks
SET tblTasks.IconFilePath = "C:\Images\john.smith.jpg"
WHERE (((Replace(Nz([PersonResponsible],"")," ",""))="Smith,John"));
在这种情况下,多余的where子句不会增加更多的特异性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.