You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Access数据库字段除法遇0值(含0/0)报错问题求助

解决Access数据库0除以0的SQL计算报错问题

修改后的SQL语句

把原语句里的除法部分替换成安全的判断逻辑,用Access的IIf函数规避除以0的情况,修改后的代码如下:

sqlSTR = "SELECT IIf(TBL_Stocks_Balances.Item_QTY = 0, Null, TBL_Category_Item_File.Item_Org_Price2/TBL_Stocks_Balances.Item_QTY) AS [Price] FROM (((TBL_Category_Item_File INNER JOIN TBL_Suppliers_Product ON TBL_Category_Item_File.Item_ID = TBL_Suppliers_Product.Item_ID) INNER JOIN TBL_Suppliers ON TBL_Suppliers_Product.Supp_ID = TBL_Suppliers.Supp_ID) INNER JOIN TBL_Sub_categories ON TBL_Category_Item_File.ID_Sub_categories = TBL_Sub_categories.ID_Sub_categories) INNER JOIN TBL_Stocks_Balances ON (TBL_Stocks_Balances.Item_ID = TBL_Category_Item_File.Item_ID) AND (TBL_Category_Item_File.Item_BarCode = TBL_Stocks_Balances.Item_Barcode) WHERE tbl_Category_Item_File.Catg_ID = " & Split(cmblist.Text, " - ")(0)

关键逻辑说明

  • 核心是用IIf(TBL_Stocks_Balances.Item_QTY = 0, Null, 除法表达式)做判断:当分母Item_QTY为0时,直接返回Null(也可以改成0或者其他符合业务需求的默认值);只有分母不为0时,才执行除法运算。
  • 如果要专门覆盖0除以0的场景,可以把条件扩展为IIf(TBL_Stocks_Balances.Item_QTY = 0 OR TBL_Category_Item_File.Item_Org_Price2 = 0, Null, ...),确保分子分母都是0的情况也不会触发报错。

小提示

  • 原SQL里AS ['Price']的单引号属于多余写法,改成AS [Price]更符合Access的语法规范。
  • 要是字段可能出现Null值,也可以结合Nz函数处理,但这里重点是规避除以0,所以IIf的条件判断更直接。

内容的提问来源于stack exchange,提问作者Islam Awad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 10:21:04