大量數(shù)據(jù)處理裡使用進(jìn)度條顯示進(jìn)度,但如何避免進(jìn)度條拖慢處理時(shí)間呢
- 2020-01-03 08:00:00
- zstmtony 原創(chuàng)
- 4759
最近幫一箇客戶在處理一箇業(yè)務(wù)時(shí),因爲(wèi)處理時(shí)間長,爲(wèi)瞭避免客戶焦慮等待,在處理過程中添加瞭進(jìn)度條,但因爲(wèi)記録數(shù)特彆多,達(dá)幾十萬,增加進(jìn)度條顯示後,會(huì)導(dǎo)緻處理時(shí)間成倍增加。拖慢瞭處理的速度,反而背離瞭之前的初衷。所以在顯示進(jìn)度條時(shí)想瞭一箇辦法,不是每條都刷新進(jìn)度條,而是以一定的間隔如100 1000 10000 這樣的等級間隔來刷新進(jìn)度條,數(shù)據(jù)量越大,間隔長度越長,這樣就在處理時(shí)間及顯示進(jìn)度條之間取得一箇平衡,旣顯示瞭進(jìn)度,但不會(huì)拖慢整箇處理時(shí)間。
Public Sub 生成3箇號(hào)和值振幅錶() Dim rst As Object '子窗體記録集 Dim rstTmp As Object '子窗體記録集 Dim He123, He124, He125, He234, He235, He345, He134, He135, He145, He245 As Integer Set rstTmp = CurrentDb.OpenRecordset("TMP_tbl最後一期數(shù)據(jù)錶", dbOpenDynaset) rstTmp.MoveFirst '把當(dāng)前記録的數(shù)據(jù)保存在變量,用於計(jì)祘所有組閤的振幅 He123 = rstTmp![123和] He124 = rstTmp![124和] He125 = rstTmp![125和] He234 = rstTmp![234和] He235 = rstTmp![235和] He345 = rstTmp![345和] He134 = rstTmp![134和] He135 = rstTmp![135和] He145 = rstTmp![145和] He245 = rstTmp![245和] rstTmp.Close Set rstTmp = Nothing CurrentDb.Execute "delete * from tbl3箇號(hào)和值振幅錶" Set rst = CurrentDb.OpenRecordset("tbl3箇號(hào)和值振幅錶", dbOpenDynaset) Set rstTmp = CurrentDb.OpenRecordset("tbl3箇號(hào)和庫", dbOpenDynaset) If rstTmp.RecordCount = 0 Then Exit Sub '初始化進(jìn)度條 '記録集先移到最後,以避免總條數(shù)取不對 rstTmp.MoveLast rstTmp.MoveFirst Dim lngCnt As Long Dim i As Long lngCnt = rstTmp.RecordCount '取記録的總數(shù) Dim clsProgress As New clsSysProgress Dim lngSplit As Long lngSplit = Int(lngCnt / 100) If lngSplit <= 0 Then lngSplit = 1 clsProgress.gintStep = 1 clsProgress.gintLong = lngCnt clsProgress.gintTime = 20 clsProgress.gf_ChangeText "準(zhǔn)備生成3箇號(hào)和值振幅錶 ..." clsProgress.gf_Show PM_Wait Do Until rstTmp.EOF '記録數(shù)比較大時(shí),則隔一段時(shí)間纔更新進(jìn)度條,而不是每條都更新進(jìn)度條,大大加快速度 i = i + 1 If i Mod lngSplit = 0 Or i = lngCnt Then clsProgress.gf_ChangeText "正在生成3箇號(hào)和值振幅錶-- 第" & i & "條/共" & lngCnt & "條 ..." clsProgress.gf_SetStep i DoEvents End If rst.AddNew rst!組閤ID = rstTmp!組閤ID rst!組閤 = rstTmp!組閤 rst![123振幅] = Abs(rstTmp![123和] - He123) rst![124振幅] = Abs(rstTmp![124和] - He124) rst![125振幅] = Abs(rstTmp![125和] - He125) rst![234振幅] = Abs(rstTmp![234和] - He234) rst![235振幅] = Abs(rstTmp![235和] - He235) rst![345振幅] = Abs(rstTmp![345和] - He345) rst![134振幅] = Abs(rstTmp![134和] - He134) rst![135振幅] = Abs(rstTmp![135和] - He135) rst![145振幅] = Abs(rstTmp![145和] - He145) rst![245振幅] = Abs(rstTmp![245和] - He245) rst.Update rstTmp.MoveNext Loop '關(guān)閉進(jìn)度條 處理完成 clsProgress.gf_ChangeText "3箇號(hào)和值振幅錶 處理完成!" '完成 Set clsProgress = Nothing rst.Close rstTmp.Close Set rst = Nothing Set rstTmp = Nothing
分享
Access數(shù)據(jù)庫自身
- office課程播放地址及課程明細(xì)
- Excel Word PPT Access VBA等Office技巧學(xué)習(xí)平颱
- 將( .accdb) 文件格式數(shù)據(jù)庫轉(zhuǎn)換爲(wèi)早期版本(.mdb)的文件格式
- 將早期的數(shù)據(jù)庫文件格式(.mdb)轉(zhuǎn)換爲(wèi) (.accdb) 文件格式
- KB5002984:配置 Jet Red Database Engine 數(shù)據(jù)庫引擎和訪問連接引擎以阻止對遠(yuǎn)程數(shù)據(jù)庫的訪問(remote table)
- Access 365 /Access 2019 數(shù)據(jù)庫中哪些函數(shù)功能和屬性被沙箱模式阻止(如未啟動(dòng)宏時(shí))
- Access Runtime(運(yùn)行時(shí))最全的下載(2007 2010 2013 2016 2019 Access 365)
Access VBA函數(shù)模塊
Access Activex第三方控件
- Activex控件或Dll 在某些電腦無法正常註冊的解決辦法(regsvr32註冊時(shí)卡?。?/a>
- office使用部分控件時(shí)提示“您沒有使用該ActiveX控件許可的問題”的解決方法
- RTF文件(富文本格式)的一些解析
- Access樹控件(treeview) 64位Office下齣現(xiàn)橫曏滾動(dòng)條不會(huì)自動(dòng)定位的解決辦法
- Access中國樹控件 在win10電腦 節(jié)點(diǎn)行間距太小的解決辦法
- EXCEL 2019 64位版(Office 2019 64位)早就支持64位Treeview 樹控件 ListView列錶等64位MSCOMMCTL.OCX控件下載
- VBA或VB6調(diào)用WebService(直接Post方式)併解析返迴的XML
Access ADP Sql Server等
- 早期PB程序連接Sqlserver齣現(xiàn)錯(cuò)誤
- MMC 不能打開文件C:/Program Files/Microsoft SQL Server/80/Tools/Binn/SQL Server Enterprise Manager.MSC 可能是由於文件不存在,不是一箇MMC控製颱,或者用後來的MMC版
- sql server連接不瞭的解決辦法
- localhost與127.0.0.1區(qū)彆
- Roych的淺談數(shù)據(jù)庫開髮繫列(Sql Server)
- sqlserver 自動(dòng)備份對備份目録沒有存取權(quán)限的解決辦法
- 安裝Sql server 2005 express 和SQLServer2005 Express版企業(yè)管理器 SQLServer2005_SSMSEE
文章分類
聯(lián)繫我們
聯(lián)繫人: | 王先生 |
---|---|
Email: | 18449932@qq.com |
QQ: | 18449932 |
微博: | officecn01 |