Access交流中心

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

回复 加入收藏帖  复制
我要提问 帖子上移

[5分]各师老师,这个代码如果数据多的话运行很慢,有没有可优化加速?谢谢!

菜鸟 等级: 普通会员▲ 积分:265 金币:40 来自:广州Access交流中心 发表于:2020-08-10 15:23:29   已结帖
楼主

If Me.Uom = "CNY/G" Then

 

        strsql = "select * from View_style_sbgf_gm"

        Set rsmx = cnn.Execute(strsql)

 

        Do Until rsmx.EOF

            sfrgflz = 0

            strbz = 0

            sfrgflz = Round(Nz(rsmx!sbgf, 0) + Nz(Me.Pz, 0), 1)

    

            strbz = "G" & Format(Int((9 - 1 + 1) * Rnd() + 1), "0") & Format(Int((9 - 1 + 1) * Rnd() + 1), "0") & Format(Int([sfrgflz]), "00") & "A" & Round(([sfrgflz] - Int([sfrgflz])) * 10, 0)

 

            DoCmd.RunSQL " UPDATE tbl_Style_master SET tbl_Style_master.Jgbh= '" & strbz & "',tbl_Style_master.gf= " & sfrgflz & "" _

                       & " WHERE StyleNo='" & rsmx!StyleNo & "';"

 

            rsmx.MoveNext

        Loop

        rsmx.Close

 

    Else

 

        strsql = "select * from View_Style_sbgf_pc"

 

 

        Set rsmx = cnn.Execute(strsql)

        Do Until rsmx.EOF

 

            sfrgflz = 0

            strbz = 0

            sfrgflz = Round(Nz(rsmx!Netweight, 0) * Nz(Me.Pz, 0) + 12 + Nz(rsmx!sbgf, 0), 0)

    

            strbz = "P" & Format(Int((9 - 1 + 1) * Rnd() + 1), "0") & Format(Int((9 - 1 + 1) * Rnd() + 1), "0") & "A" & Format(Int([sfrgflz]), "000")

 

            DoCmd.RunSQL " UPDATE tbl_Style_master SET tbl_Style_master.Jgbh= '" & strbz & "',tbl_Style_master.gf= " & sfrgflz & "" _

                       & " WHERE StyleNo='" & rsmx!StyleNo & "';"

            rsmx.MoveNext

        Loop

        rsmx.Close

 

    End If

 

access培训  诚聘access开发人员

    菜鸟
      获得社区协助:请教问题(即发帖)119篇,其中获得解决的111篇;
      协助社区成员:协助他人(即回帖)45篇,其中被设为【最佳答案】的10篇;
      协助我们社区:发布技术文章1篇,邀请了0名新会员注册本社区(如何邀请会员注册,详见:http://www.accessoft.com/sitehelp.asp)。
Top

扫描下方工作人员的微信二维码加微信,邀您加入Access课堂微信群,进入一个技术交际圈:

网站工作人员微信

西出阳关无故人 等级:版主★★★★★ 积分:659 金币:120 来自:安顺Access交流中心 发表于2020/8/26 8:51:21 最佳答案
1楼 得分: 5

可以创建一个临时表,用于记录计算好的strbz ,sfrgflz ,StyleNo的值,然后用连接更新查询:


DoCmd.RunSQL  "UPDATE 临时表 INNER JOIN tbl_Style_master ON 临时表.StyleNo = tbl_Style_master .StyleNo SET tbl_Style_master ..Jgbh = [临时表].[strbz ], tbl_Style_master .gf = [临时表].[sfrgflz ];"



未经测试,但可能会有改观.如果数据量确实巨大,应该分组循环,否则可能死机.



    很高兴与您就本帖子进行交流,如果我的回答已经解决了您的问题,请点击上方的“最佳答案”,这样本帖子就不会在“待解决问题区”显示了,我也将获得2个积分奖励,并不会减少您的积分!
    西出阳关无故人
      获得社区协助:请教问题(即发帖)18篇,其中获得解决的9篇;
      协助社区成员:协助他人(即回帖)893篇,其中被设为【最佳答案】的244篇;
      协助我们社区:发布技术文章3篇,邀请了0名新会员注册本社区(如何邀请会员注册,详见:http://www.accessoft.com/sitehelp.asp)。
菜鸟 等级:普通会员▲ 积分:265 金币:40 来自:广州Access交流中心 发表于2020/8/26 17:24:55 
2楼 得分: 0
有几十万条数据,如何分组循环?

    菜鸟
      获得社区协助:请教问题(即发帖)119篇,其中获得解决的111篇;
      协助社区成员:协助他人(即回帖)45篇,其中被设为【最佳答案】的10篇;
      协助我们社区:发布技术文章1篇,邀请了0名新会员注册本社区(如何邀请会员注册,详见:http://www.accessoft.com/sitehelp.asp)。
西出阳关无故人 等级:版主★★★★★ 积分:659 金币:120 来自:安顺Access交流中心 发表于2020/8/27 11:17:57 
3楼 得分: 0
如果没有适合的可以分组的字段,那就用分页的方式.

    很高兴与您就本帖子进行交流,如果我的回答已经解决了您的问题,请点击上方的“最佳答案”,这样本帖子就不会在“待解决问题区”显示了,我也将获得2个积分奖励,并不会减少您的积分!
    西出阳关无故人
      获得社区协助:请教问题(即发帖)18篇,其中获得解决的9篇;
      协助社区成员:协助他人(即回帖)893篇,其中被设为【最佳答案】的244篇;
      协助我们社区:发布技术文章3篇,邀请了0名新会员注册本社区(如何邀请会员注册,详见:http://www.accessoft.com/sitehelp.asp)。
总记录:3篇  页次:1/1 9 1 :
您还没有在Access软件网登录不能回复帖子
  • 你没有登录,请点击后面链接登录:登录
  • 如果你没有注册,请点击后面链接注册:注册,注册完成后,请再次访问本页功能。