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

Access查询中如何将数字格式化为3位小数?Format/Round尝试无效

Access查询中数字格式化(保留3位小数+千分位)

正确实现方法

Access的Format函数需要指定格式字符串而非小数位数数字,你之前用Format(SUM(transf2.amt),3)参数错误,导致无效。要实现1000,000.xxx的格式,需使用格式字符串"#,##0.000":

  • #,##0:实现千分位分隔,确保整数部分至少显示1位
  • .000:强制保留3位小数,不足补0

修改后的查询语句

原查询中SUM(transf2.amt) as b1替换为:

Format(SUM(transf2.amt), "#,##0.000") as b1

对应修改后的VBA拼接代码

SQ = " SELECT  Format(SUM(transf2.amt), '#,##0.000') as b1     "
SQ = SQ & " FROM        transf1 INNER JOIN "
SQ = SQ & "  transf2 ON transf1.Trans_Num = transf2.Trans_Num "
SQ = SQ & " where   (transf1.[Date] <= #" & Format(Trim(period(0)), "mm/dd/yyyy") & "#) and   transf2.acc=" & AccNo
SQ = SQ & " and transf1.cur_no=" & Val(account_no(6))

补充说明

  • Round函数仅负责数值的四舍五入,不会添加千分位分隔符,也不会强制保留小数位数(比如整数会显示为整数而非x.000),因此不满足你的格式需求。
  • 注意:使用Format函数后,返回的结果是文本类型,如果后续需要对该字段进行数值计算,需用CDbl()等函数转换回数值类型。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 21:15:33