Access本身就自带的有进度条功能,但是存在一些不足,如:
1. 界面很小,并且只能显示在Access状态栏中,不够醒目,并且由于状态栏还可以隐藏掉,如果这时未能强制显示出来,则进度条也看不到了。
2. 只能支持单个进度,如需要显示为总进度,明细进度,则无法实现(在一些耗时且复杂的业务处理中。该功能很有用)。
此通用进度条模块即为以上等自带进度条无法满足的情况下的替代方案。
说明
该类模块只能在 Access 中使用,需要用 CreateInstance 函数来实例化。不能用 New 关键字或 CreateObject 函数进行实例化。
另外在更新 Value 和 SubValue 时会自动使用 DoEvents 方法来防止程序假死,所以不需要再额外使用 DoEvents。
开发接口
属性名 | 必需/可选 | 数据类型 | 可读写 | 说明 |
---|---|---|---|---|
BackColor | 可选 | Long | 可读写 | 进度条窗口的背景颜色 |
ForeColor | 可选 | Long | 可读写 | 进度条窗口中的字体颜色。 |
BorderColor | 可选 | Long | 可读写 | 进度条窗口中的边框颜色。 |
Visible | 可选 | Boolean | 可读写 | 进度条窗口是否可见。 |
PercentFormat | 可选 | String | 可读写 | 百分比数字显示的格式。 |
StatusText | 可选 | String | 可读写 | 主进度条的说明文字。 |
Max | 必需 | Long | 可读写 | 主进度条的最大值,即达到该值主进度为100%。 |
Value | 必需 | Long | 可读写 | 主进度条的当前值,Value/Max即为当时主进度条的进度。更新Value时会自 动将子进度条重置为初始状态(即进度为0%)。 |
SubStatusText | 可选 | String | 可读写 | 子进度条的说明文字。 |
SubMax | 可选 | Long | 可读写 | 子进度条的最大值,即达到该值子进度为100%。 |
SubValue | 可选 | Long | 可读写 | 子进度条的当前值。SubValue/SubMax即为当前子进度条的进度。当设置了SubMax属性时为必需。 |
AllowEsc | 可选 | Boolean | 可读写 | 是否允许使用 Esc 键中断进度条。(2.5.0 版加入) |
方法名 | 说明 |
---|---|
CloseProgressBar | 关闭进度条。用于当过程尚未执行完,但是不再需要进度条的时候关闭。 |
示例
单个进度条示例:
Private Sub Command0_Click() Dim clsPB As PopupProgressBar Dim lngI As Long Set clsPB = CreateInstance("PopupProgressBar") clsPB.StatusText = "正在更新..." clsPB.Max = 1000 For lngI = 1 To clsPB.Max clsPB.Value = lngI Next MsgBox "更新完成!", vbInformation End Sub
主子进度条示例:
Private Sub Command1_Click() Dim clsPB As PopupProgressBar Dim lngI As Long Dim lngJ As Long Set clsPB = CreateInstance("PopupProgressBar") clsPB.PercentFormat = "0%" clsPB.StatusText = "正在更新..." clsPB.Max = 17 For lngI = 1 To clsPB.Max clsPB.SubStatusText = "正在更新 " & lngI & "..." clsPB.SubMax = 300 For lngJ = 1 To clsPB.SubMax clsPB.SubValue = lngJ Next clsPB.Value = lngI Next MsgBox "更新完成!", vbInformation End Sub
修订记录
- 2019-07-08 2.5.0 新增 AllowEsc 属性。