设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 743|回复: 8
打印 上一主题 下一主题

[Access本身] 关于数据拆分,计算问题

[复制链接]
跳转到指定楼层
1#
发表于 2006-2-21 21:25:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式



例子中的表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个子段:每瓶重量,单位,每箱瓶数,这样装数据就容易,但现在不能更改表),请大家多多指教。

比较急,在线等待,谢谢!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2006-2-21 23:37:00 | 只看该作者
我也不会,帮顶!
3#
发表于 2006-2-21 23:54:00 | 只看该作者
你的单位各不同,最后的重量是 ml还是g还是l,

还有 ml+g 这个怎么加啊
4#
发表于 2006-2-22 00:08:00 | 只看该作者
给你一个提示:

先用replace将ml变为空字符,

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

最后用sum类计总数
5#
发表于 2006-2-22 00:45:00 | 只看该作者
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
6#
 楼主| 发表于 2006-2-22 01:00:00 | 只看该作者
表中的只是示例数据,当正式计算时,会有:编码1-5单位为ml,编码6-10单位为g,这些代号只有使用该数据库的人知道
7#
发表于 2006-2-22 01:04:00 | 只看该作者
你用我的代码就可以搞定了
8#
发表于 2006-2-22 01:07:00 | 只看该作者
如果知道非数字的具体内容好处理一点,如果是乱七八糟的就难办了,所以不管做什么事都要规范化
9#
 楼主| 发表于 2006-2-22 01:14:00 | 只看该作者
谢谢,可以运行了。

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

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-9-22 03:30 , Processed in 0.090971 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表