以下是引用大红袍在2016/2/3 9:35:00的发言:
很麻烦的,如果用表达式做
iif(iif([抽样地点] is null, 0 , len(抽样地点)+6) + iif(收获年限 is null, 0, len(收获年限)+6) = 0, '', substring(iif([抽样地点] is not null, '抽样地点:'+[抽样地点] + ',','') + iif([收获年限] is not null,'收获年限:'+ [收获年限] + ',',''),1, iif([抽样地点] is null, 0 , len(抽样地点)+6) + iif(收获年限 is null, 0, len(收获年限)+6) - 1))
谢谢老师。
在你的启发下,我的代码改为:
SubString(IsNull('抽样地点:'+[抽样地点] + ',','') + IsNull('收获年限:'+[收获年限]+ ',','') + IsNull('入库时间:'+[入库时间]+ ',','')+ IsNull('代表数量:'+[代表数量]+ ',','')+ IsNull('产地:'+[产地]+ ',',''),1,iif([抽样地点] is null, 0 , len(抽样地点)+6 + iif(收获年限 is null, 0, len(收获年限)+6) - 1))
经测试也可以的。
==============================================
小结:
求字符长度有两种方法:
(1)利用函数len()
(2)分段求长度,再将各段长度相加
===================================================
还可以这样做:
SubString(IsNull('抽样地点:'+[抽样地点] + ',','') + IsNull('收获年限:'+[收获年限]+ ',','') + IsNull('入库时间:'+[入库时间]+ ',','')+ IsNull('代表数量:'+[代表数量]+ ',','')+ IsNull('产地:'+[产地]+ ',',''),1,IsNull(len('抽样地点')+len([抽样地点]+1),0)+IsNull(len('收获年限')+len([收获年限]+1),0)+IsNull(len('入库时间')+len([入库时间]+1),0)+IsNull(len('代表数量')+len([代表数量]+1),0)+IsNull(len('产地')+len([产地]+1)-1,0)
)