繁体   English   中英

在MS Access Update语句的WHERE子句中使用替换功能时,获取数据类型不匹配错误

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM