Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

[5分]怎么样表2的汇总更新到表1

菜鸟  发表于:2012-04-25 13:37:37  
复制

点击下载此附件  想把表2的石料费用汇总后更新到表1石料费用中,然后又计算表1的总费用=石料费用+镶石费用

 

Top
纵云梯 发表于:2012-04-25 14:09:49
菜鸟 发表于:2012-04-25 20:11:56
老师,这样运行速度好慢呀,有什么方法可以提升速度?

纵云梯 发表于:2012-04-25 20:25:35

兄弟我不明白你所说的慢是什么概念(即究竟用了你多小时间/秒)?!

在你公开的例子里只有寥寥三几条记录的数据量,用我的方法绝对是一展眼的功夫(0.001~0.005秒差不多吧)。

如果你真的要处理成千上万条记录,那么你得先把那个成千上万条记录的例子先传上来才好分析啊!



菜鸟 发表于:2012-04-25 22:29:30

DoCmd.SetWarnings False


    DoCmd.RunSQL " UPDATE tbl_material_master INNER JOIN tbl_Item_Bom ON tbl_material_master.StCode = tbl_Item_Bom.StoneCode SET tbl_Item_Bom.Cdj = [tbl_material_master].[StPice]," _
               & " tbl_Item_Bom.Czj = IIf([tbl_Item_Bom]![Jjdw]='CT',[tbl_material_master]![StPice]*[tbl_Item_Bom]![CT],[tbl_material_master]![stpice]*[tbl_Item_Bom]![PC]);"

    Dim rst As ADODB.Recordset
    Set rst = New ADODB.Recordset
    Dim strSQL As String
    strSQL = "select * from tbl_Item_master"
    rst.Open strSQL, CurrentProject.Connection, adOpenDynamic, adLockOptimistic
    Do Until rst.EOF
        rst!SIcl = DSum("Czj", "tbl_Item_Bom", "StyleNo='" & rst!StyleNo & "'")
        rst!SIzj = rst!SIqb + rst!Sibd + rst!SIcl + rst!SIqc + rst!SIJc + rst!SIot
        rst.Update
        rst.MoveNext
    Loop
    rst.Close
    Set rst = Nothing

    DoCmd.SetWarnings True
   
    MsgBox "款号成本资料已更新!", vbInformation, "提示"

 

我修改了代码后,运行是没问题,只是太慢了,不知怎么原因。数据太大无法上传,记录有一万多条!



纵云梯 发表于:2012-04-25 22:57:06
2万条记录才1m左右,无例子无真相啊。

菜鸟 发表于:2012-04-26 09:12:28
点击下载此附件 现在可以了,之前我用ZIP压缩,所在很大!

纵云梯 发表于:2012-04-26 16:16:10

点击下载此附件

 

现在已提速不少(大概需要5秒)而且不会出现类似硬直死机状态。

另外提醒一下凡是遇到要处理大量数据(1万条记录或以上)切记不要用类似Dsum,Dloopup,Dmax等等函数,因为这些函数的速度极其有限,一般这些函数用来处理2000条数据左右是可以的,多了就会越来越慢,1万条记录或以上很容易出现似硬直死机状态,切记!切记!



菜鸟 发表于:2012-04-27 09:01:24
tbl_Item_Bom的AA汇总更新到tbl_Item_master对应的款号有问题的SIcl,没有按照对应的款号更亲新的,老师能否帮我看一下,我查不出问题
下面这句,没有更新到对应的款号
   Rst2!SIcl = Rst1!AA


纵云梯 发表于:2012-04-27 09:26:27
我把tbl_Item_master表中的SIcl字段的值跟Item_master表和tbl_Item_Bom表的合并查询中AA汇总字段对比了一下,发觉根据StyleNo(款号)字段对比没有发觉任何异常或对不上的。请认真查阅,如真有问题请具体说明问题所在,最好能附图。

总记录:9篇  页次:1/1 9 1 :