Office中国论坛/Access中国论坛

标题: 如何拆分月计划为日计划 [打印本页]

作者: winner    时间: 2006-7-13 22:21
标题: 如何拆分月计划为日计划
[attach]19009[/attach]


我要实现:输入月计划数量,系统会根据05年的历史数据,计算出每日应该完成的数量.

例如:2005-2-1    70
        2005-2-2    50
        2005-2-28   80
           2月总:      200
现输入:100      
系统将出现:2006-2-1    35 (70/200*100)
                   2006-2-2    25 (50/200*100)
                   2006-2-28   40 (80/200*100)

现在的情况是,我用了6个查询才能完成把新计算的2月份的数追加到表T_QuantityAll中,如果我要把整年的数都追加进去,那就意味着要做6*12=72个查询,这样太不方便了,而且如果到了07年,我要求回06年的历史数据,也要修改12个查询(见Q_February里的条件),这样太不方便了,请问大家有什么简便的方法,教教我,谢谢了!


[此贴子已经被作者于2006-7-13 14:26:02编辑过]


作者: winner    时间: 2006-7-13 22:24
补充:测试时,产品编号请用:1020211055
作者: andymark    时间: 2006-7-14 00:31
看看是不是你想要的效果

在窗体选择月份,计划数量,会自动对比去年的数据,按比例分配

以后也不用更改查询,实际也没有查询可更改

[attach]19012[/attach]

作者: winner    时间: 2006-7-14 01:09
运行不了哦,显示无效使用Null.我把新的各月份数据追加到表T_QuantityAll的目的,是要出一个全年的表,然后再做交叉表,最终得到:

产品  2006.1.1   2006.1.2 ^^^^^^^^    2006.12.31

A       20          30                   32

B       32          42                   88

我觉得这个问题关键是解决:1.如何计算各个月的月数量;2.如何保证每天除以的是当月的月数量(例如:1月1日除以的是1月份的月数量).这2个问题都涉及筛选,所以比较麻烦,我只会用查询来搞
作者: winner    时间: 2006-7-14 01:39
重新描述一下问题:
现在知道  产品编号   日期(2005年全年)    每日数量
  如:     1020211055   2005-02-01          0
          1020211055   2005-02-02          500
最终要求   只要输入:2月份的计划数,如600000,就自动可以看到每天的数量
           产品编号   日期(2006年全年)    每日数量
  如:     1020211055   2006-02-01           0
          1020211055   2006-02-02          300
2006-02-02的数据300来源是:600000*05年2月2日的百分比
                          05年2月2日的百分比=500/05年2月整个月的总数量

我现在的做法是:1.下条件,筛选出05年2月的全部记录
               2.计算2月份数量总和
               3.计算2月份每天所占的百分比
               4.把窗口输入的06年2月的预算值通过更新查询更新到表T_BudgetQuantity
               5.计算06年2月每天的数量(预算值*百分比)
               6.把06年2月数量追加到表T_QuantityAll
然后重复1--6的步骤,把06年1月到12月的数都追加进表T_QuantityAll,然后再做交叉表,OK.

我不想重复1--6的步骤12次,应该怎么办才好呢?[em06]
作者: andymark    时间: 2006-7-14 06:13
运行不了?[em06][em06] 是指那方面?



[attach]19016[/attach]

作者: winner    时间: 2006-7-14 18:33
昨天按完运行查询(第3楼的例子),显示:显示无效使用Null。

今天按完运行查询(第6楼的例子),系统没反应。

我不知道大家明不明白我说的意思,详见第5楼的问题重述(我想了好久才写出来的)。我一定要把06年12个月的数据放到一个表中,才能做最后的操作。现在是:计算06年数据过程很繁琐,每个月要建6个查询才能完成追加动作,12个月的话意味着要做6*12=72个查询,这样太麻烦了,所以想看看大家有无其他更好的想法。
















作者: andymark    时间: 2006-7-14 18:51
我这里运行没问题,有没有引用ADO


作者: winner    时间: 2006-7-14 21:26
我这样运行:输入2006-02,1020211055,数量5000,按运行查询,再打开交叉表查看。

问题1:我发现2月份的总数是251324,不是5000,5000才是正确的。(2月份应出的结果见下面的文件)

问题2:我想一按按钮就出现全年的数,而不是分月查询,所以这里又涉及存放新计算的12个月数据的问题,所以版面设计还是用回我原来的吧。
[attach]19031[/attach]


[此贴子已经被作者于2006-7-14 14:01:30编辑过]


作者: andymark    时间: 2006-7-14 22:07
1.结果没问题,在你的例子中你是想要追加一年的数据,在追加之前没有删除原来的数据,如果你连续追加几次,当然结果是不正确了,把T_QuantityAll的表删除内容再测试一下

2.一年的数据都是计划数5000,还是每个月的计划数不同,如果是后者,选定月份后追加应可以实现,如果你还觉得这样也麻烦,干脆在窗体放12个月的计划数量,只选择年份,一次全部追加,再据此整理交叉表
作者: winner    时间: 2006-7-14 23:40
好的,我试试。因为刚刚测试过,正如楼上所言,是数据重复问题。[em04]

谢谢啦!
作者: winner    时间: 2006-7-17 23:29
[attach]19088[/attach]
[attach]19089[/attach]

To andymark :我发现一个情况,请看下图,什么都没输入的时候就出现第一幅图的错误提示,输入不完全或者当月没有选定产品信息的时候就出现第二幅图的错误提示,代码里面的"请输入产品名称"那些似乎没效,如果在启动-->那里设置了打开后的默认窗体是"窗体1",然后隐藏所有工具栏,结果重新打开数据库,运行的时候就会出现:如果进行上面所说的弹出错误提示的操作,按完按钮后,系统没反应,它不会弹出错误提示的窗口.为什么会这样?
作者: andymark    时间: 2006-7-18 03:58
改成isnull 就可以了

[attach]19091[/attach]

作者: qdoffcie    时间: 2009-1-14 15:53
下载看看
学习学习




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