Access 365中如何将文本转换回BigInt?
解决Access中17位文本BigInt与实际BigInt字段比对的问题
核心解决方案
使用Access查询中的CLngLng()函数转换文本字段,直接与链接表的BigInt字段进行比对。该函数支持最大19位整数,完全覆盖你17位的需求,不会丢失精度。
示例查询关联条件:
CLngLng(Trim([你的文本BigInt字段])) = [链接表].[BigInt字段]
为什么之前的函数不行?
Val()/Cdbl()/Csng():这些属于浮点型转换,最多仅能保留15位有效数字,17位数值转换后会丢失末尾两位精度,出现科学计数法或末尾补0的情况。CLng():仅支持最大约20亿的10位整数,17位数值远超其范围,直接返回#Num!错误。CDec():理论上支持高精度,但Access查询中对CDec()的输入格式要求严格,若文本存在隐藏空格、格式字符会触发参数错误,且不如CLngLng()直接适配BigInt类型。
额外注意事项
- 如果文本字段可能包含空格或非数字字符,先通过
Trim()或Replace()清理,比如:CLngLng(Replace(Trim([你的文本BigInt字段]), ",", "")) = [链接表].[BigInt字段] - 若文本字段存在空值,需添加空值判断避免报错:
IIf(IsNull([你的文本BigInt字段]), Null, CLngLng(Trim([你的文本BigInt字段]))) = [链接表].[BigInt字段]
内容的提问来源于stack exchange,提问作者BizzyM
相关产品推荐
相关产品推荐

