Office中国论坛/Access中国论坛

标题: 关于数据拆分,计算问题 [打印本页]

作者: winner    时间: 2006-2-21 21:25
标题: 关于数据拆分,计算问题
[attach]15932[/attach]


例子中的表1是每箱产品的规格,现在我想在窗口输入产品号,箱数,就能计算出总重量。

如:输入产品号:1至5

      (规格分别为:1.6ml*6,15ml*400,15ml*400,30ml*300,760ml*12)

      输入箱数为:40

      则总重量显示:1.6*6*40+15*400*40+15*400*40+30*300*40+760*12*40的和

  如何实现这一功能呢?我觉得关键是拆分规格中数字,单位的问题(如果表1是分为3个子段:每瓶重量,单位,每箱瓶数,这样装数据就容易,但现在不能更改表),请大家多多指教。

比较急,在线等待,谢谢!
作者: Dragxixi    时间: 2006-2-21 23:37
我也不会,帮顶!
作者: 海狸先生    时间: 2006-2-21 23:54
你的单位各不同,最后的重量是 ml还是g还是l,

还有 ml+g 这个怎么加啊
作者: 一点通    时间: 2006-2-22 00:08
给你一个提示:

先用replace将ml变为空字符,

然后用Eval计算字段,再乘箱数,

最后用sum类计总数
作者: 海狸先生    时间: 2006-2-22 00:45
Private Sub Command6_Click()
Dim strSql As String
strSql = "SELECT sum(iif(instr(规格,'ml')>0,eval(replace(规格,'ml',''))," & _
           "iif(instr(规格,'l')>0,eval(replace(规格,'l','*1000')),eval(replace(规格,'g','')))))" & _
           "From [1] Where clng(编号) Between " & Text0 & " and " & Text2
Text4 = CurrentProject.Connection.Execute(strSql).GetString * Text9

End Sub
作者: winner    时间: 2006-2-22 01:00
表中的只是示例数据,当正式计算时,会有:编码1-5单位为ml,编码6-10单位为g,这些代号只有使用该数据库的人知道
作者: 海狸先生    时间: 2006-2-22 01:04
你用我的代码就可以搞定了
作者: 一点通    时间: 2006-2-22 01:07
如果知道非数字的具体内容好处理一点,如果是乱七八糟的就难办了,所以不管做什么事都要规范化
作者: winner    时间: 2006-2-22 01:14
谢谢,可以运行了。

如果从一开始就规范化那当然好啦,最惨就是一定要拿以前的数据源,又不能更改表的设计,以前我都是在EXCEL里做完再导入的,所以数据不是实时的,现在就可以实时了!




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3