|
本帖最后由 咱家是猫 于 2011-8-11 17:00 编辑
很久以前发过一次很基础的思路性例子,但当时很粗糙,现在有空,刚好有人问起这个问题,就做成一个相对适用型的例子,发出来大家共享之.
在这个例子中,主要是在实现一种无法预知一个过程需要多长时间能够执行完毕,但要告诉用户当前再在做什么,不要让用户以为是死机了.
例子中附了一个小附件Wait.ocx,其实就是另一个MDB(人为改了后辍名而已),因为如果想实现动画效果,在单一一个例程里是无法实现的,这是Access的限制.
在本库中也有一个等待提示框窗体(frmWaitBox),这个其实是一个预备提示框,这个提示框是无动画效果的.建它的用意是因为前者是另附的,有可能会被用户挪来挪去挪丢了,不能因为没有它而耽误正常的代码执行而预备的.也就是说,所以在当前库的路径中没有找到Wait.ocx,那么程序会自动启用本身自带的这个无动画效果的临时替代提示.
--------------本段论述在例子里有附
-
- Option Compare Database
- Private WaitApp As New Access.Application
- Public Property Let WaitTitle(Waitstr As String)
- On Error Resume Next
- Dim WaitFile As String
- DoCmd.Hourglass True
- WaitFile = CurrentProject.Path & "\Wait.ocx"
- If Dir(WaitFile) = "" Then
- DoCmd.OpenForm "frmWaitBox"
- Forms("frmWaitBox").TitleLabel.Caption = Waitstr
- Forms("frmWaitBox").Repaint
- Else
- DoEvents
- WaitApp.OpenCurrentDatabase WaitFile
- WaitApp.DoCmd.OpenForm "frmWaitBox"
- With WaitApp.Forms("frmWaitBox")
- !TitleLabel.Caption = Waitstr
- End With
- End If
- End Property
- Private Sub Class_Terminate()
- On Error Resume Next
- DoCmd.Close acForm, "frmWaitBox"
- WaitApp.CloseCurrentDatabase
- Set WaitApp = Nothing
- DoCmd.Hourglass False
- End Sub
复制代码
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
评分
-
查看全部评分
|