我对 Access 非常陌生(我通常使用 MySQLi 和 Navicat),我需要将 10 位 isbn 数字转换为 13 位数字。我有以下查询,它调用一个函数来执行此操作(我没有创建该函数,但它可以工作,并且我在执行其他查询时使用它):
SELECT ISBN1013([ISBN]) AS ISBN13, LastSoldDate AS LastSold, Id AS Sku, OnHand AS Quantity, Store
FROM [Store Inventory]
WHERE (((ISBN1013([ISBN])) Like "##########?"));
当我尝试运行它时,一开始一切看起来都很好,然后我收到一条错误消息,指出:条件表达式中的数据类型不匹配。我尝试在 Google 和此处查找此内容,但没有找到任何可以解释此错误的内容。 谁能帮帮我吗?
编辑:这里是信息如何开始以及最终如何显示的示例。
0448431351 -> should end up as 9780448431352
0736425543 -> should be 9780736425544
最佳答案
尝试在 ISBN 字段周围放置一个 NZ
函数:
SELECT NZ(ISBN1013([ISBN]),"") AS ISBN13
这会将任何空值转换为空字符串。
如果这不起作用,请尝试 CStr
:
SELECT CStr(ISBN1013([ISBN])) AS ISBN13
这会将任何非字符串值转换为字符串。我知道您说过您没有任何空值,但根据我的经验,即使您认为所有数据都符合预期格式,它也是有效的方法之一。
关于ms-access - 为什么我得到 "data type mismatch in criteria expression?",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11829554/