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
相关产品推荐
相关产品推荐

