decimal可以指定小数点有几位,你的两个decimal的小数点位数肯定不一样,所以造成报错。
你看一下 objDataSource.Fields("TotalAmount").Value 的字段的详细设置,然后可以用formatnumber来降低Adodc1.Recordset.Fields("TotalAmount").Value的精度。
其实不提倡用decimal这个数据类型,因为这个类型实际的应用并不多,一般也就货币用这个“decimal(8,2)”,如果数字精度高,可以用double数据类型。而货币数据类型有专用的货币类型。