本文介绍了如何在系统状态栏中显示进度条,使用了SysCmd函数。我的例子是对69万条数据进行计数,很有意思,快得不得了:)
文章正文:
第一步:新建一MDB,创建一个Customers表,表中放上60万条数据。
第二步:创建一个新模块MODtest,复制代码到模块中:
'要引用DAO
Option Explicit
Function Meter()
Dim MyDB As DAO.Database, MyTable As DAO.Recordset
Dim Count As Double
Dim Progress_Amount As Double, RetVal As Variant
Set MyDB = CurrentDb()
Set MyTable = MyDB.OpenRecordset("Customers")
' Move to last record of the table to get the total number of records.
MyTable.MoveLast
Count = MyTable.RecordCount
' Move back to first record.
MyTable.MoveFirst
' Initialize the progress meter.
RetVal = SysCmd(acSysCmdInitMeter, "正在读数据...", Count)
' Enumerate through all the records.
For Progress_Amount = 1 To Count
' Update the progress meter.
RetVal = SysCmd(acSysCmdUpdateMeter, Progress_Amount)
'Print the contact name and number of orders in the Immediate window
' Debug.Print MyTable![ContactName]; _
DCount("[OrderID]", "Orders", "[CustomerID]='" & MyTable![CustomerID] & "'")
' Goto the next record.
MyTable.MoveNext
Next Progress_Amount
' Remove the progress meter.
RetVal = SysCmd(acSysCmdRemoveMeter)
End Function
第三步:创建一新窗体frmTest,在frmTest中创建一个按钮cmdTest,在cmdTest的单击事件写下面的代码:
Private Sub cmdTest_Click()
'显示状态栏
Application.SetOption "Show Status Bar", True
Meter
End Sub