VB中如何提示程序正在计算?

程序中某计算过程需要很长时间,计算过程中如何提示程序正在计算?

Option Explicit
Dim i As Single
Dim a As Single

Private Sub Command1_Click()
a = 100000
Label1.Caption = "程序正在计算"
Timer1.Enabled = True
End Sub

Private Sub Command2_Click()
'放计算代码,例:
For i = 1 To 100000
a = a - 1
Next
Label1.Caption = "计算结束。"
End Sub

Private Sub Timer1_Timer()
Call Command2_Click
Timer1.Enabled = False
End Sub

一般此类计算发生于循环代码,数据遍历检索等,建议用进度条提示进度:

Option Explicit
Dim n As Single
Dim a As Single

Private Sub Command1_Click()
a = 0
For n = 1 To 1000000
a = a + 1
ProgressBar1.Value = (a / 1000000) * 100
Next
Label1.Caption = "计算结束。"
End Sub

以下给出一段实用数据查询代码的一部分,注意ProgressBar1.Visible的变化,仅供参考:
Private Sub Command12_Click()
,其它查询代码略
ProgressBar1.Visible = True
'chaxun1 = "select sum([数量]) as 合计 from mdlk_sj where "
'chaxun3 = " 销售='No' and 入库日期<='" & Text2 & "'"
'chaxun2 = "and 品种='DTY'"
'chaxun31 = " or 销售='No' and 入库日期>'T000-01-01' and 入库日期<='" & "T" & Right$(Text2, 9) & "'"
'mdh = chaxun1 & chaxun3 & chaxun2 & chaxun31 & chaxun2
'查询DTY库存数量
chaxun1 = "select sum([数量]) as 合计 from mdlk_sj where 销售='No'" ' between '" '
chaxun2 = " and 品种='DTY'"
mdh = chaxun1 & chaxun2
Adodc1.ConnectionString = "DSN=hxkcgl"
Adodc1.RecordSource = mdh
Adodc1.Refresh
DataGrid1.Refresh
If Adodc1.Recordset(0) > 0 Then
cktj_bm(12) = Adodc1.Recordset(0)
cktj_bm(12) = Int((cktj_bm(12)) * 10 + 0.501) / 10
Else
cktj_bm(12) = 0
End If
Text20.Text = cktj_bm(12)
ProgressBar1.Value = 3
chaxun1 = "select sum([数量]) as 合计 from mdlk_sj where 销售='No'" ' between '" '
chaxun2 = " and 品种='DTY' and 复合丝='Y' "
mdh = chaxun1 & chaxun2
Adodc1.ConnectionString = "DSN=hxkcgl"
Adodc1.RecordSource = mdh
Adodc1.Refresh
DataGrid1.Refresh
If Adodc1.Recordset(0) > 0 Then
cktj_bm(13) = Adodc1.Recordset(0)
cktj_bm(13) = Int((cktj_bm(13)) * 10 + 0.501) / 10
Else
cktj_bm(13) = 0
End If
ProgressBar1.Value = 6
,其它查询代码略
ProgressBar1.Value = 15
,其它查询代码略
ProgressBar1.Value = 45
,其它查询代码略
ProgressBar1.Value = 80
,其它查询代码略
End Sub
温馨提示:内容为网友见解,仅供参考
第1个回答  2007-01-20
在开始运算前先将有关控件disable,再放一个label显示正在计算机.
等运算完了,再恢复即可.
具体的控件与代码你自己扩充本回答被提问者采纳

VB中如何提示程序正在计算?
Option Explicit Dim i As Single Dim a As Single Private Sub Command1_Click()a = 100000 Label1.Caption = "程序正在计算"Timer1.Enabled = True End Sub Private Sub Command2_Click()'放计算代码,例:For i = 1 To 100000 a = a - 1 Next Label1.Caption = "计算结束。"End Sub...

VB6.0如何实现像"正在计算,请稍后..."的提示,执行完成后,该提示消失
在执行代码的第一行输入 text1.text=“正在计算,请稍后...”在最后一行输入 text1.Visible =false 补充:看不出来字?是不是text一眨眼就不见了,若是则因为你的计算过程用时十分少

怎样用vb检测正在运行的程序并将它们关闭
If (Process32First(l, my)) Then '遍历第一个进程 Do i = InStr(1, my.szExeFile, Chr(0)) '获得映像名称 mName = LCase(Left(my.szExeFile, i - 1)) '并转换成小写 If mName = LCase(sEndProess) Then '是不是指定的程序 pid = my.th32ProcessID '获得进程ID pname = mName ...

excel图表使用VBA创建进度条
1.在属性窗口中,将该用户窗体命名为urfProgress。2.设置其ShowModal属性为False,这样在该用户窗体处于打开状态时仍能继续运行程序。3.调整该用户窗体为合适的大小(高110*宽240)。进行适当设置后,目前表示进度条的用户窗体如下图1所示。图1 在用户窗体中插入一个标签控件,用于显示指示程序状态的文本。

以下这个VB程序运行时提示缺少函数或变量该怎么解决?
Private Sub Command1_Click()Dim t As Integer, m As Integer, n As Long Dim a As Integer, b As Integer, c As Integer, d As Integer, e As Integer, f As Integer Dim i As String m = 33 t = Text1 Label1.Caption = "计算机正在为您计算中,请稍等.如组合较多可能会花费...

VB6中如何逐语句调试?
1、首先编写一段代码,如图所示:2、选择调试,中的”编译VBAproject”,如图所示:3、这个时候,如果发生错误,会弹出错误提示,如果正确,则正常运行,例子中弹出了错误提示,我们点击确认,然后根据错误提示进行修改即可,如图所示:4、如果程序代码比较长,可以选择逐句编译,如图所示:5、按f8开始下一句,正在...

vb 编写程序,求1000 以内的完全数。完全数指一个数的 所有因子(不含本 ...
'需要控件:command1 Private Sub Command1_Click()Print "1~1000完全数有:";For i = 1 To 1000 s = 0 For j = 1 To i - 1 If (i Mod j) = 0 Then s = s + j Me.Caption = "正在计算: " & i DoEvents Next j If s = i Then Print i;: strdata = strdata & s &...

vb中的计时器如何设计
1.如果应用程序或其它应用程序正在进行对系统要求很高的操作─ 例如长循环、高强度的计算或者正在访问驱动器、网络或端口─ 则应用程序定时器事件的间隔可能比 Interval 属性指定的间隔长。2.间隔的取值可在 0 到 64,767 之间(包括这两个数值),这意味着即使是最长的间隔也不比一分钟长多少(大约 64...

如何对excel的数据运用VB程序计算,最后在excel显示
1、直接在VB中生成Excel.Application对象,可以隐藏打开也可以显示打开 2、然后再通过这个excel对象,打开相应的文档或者获取相应需要计算的数据,3、在excel中调用VBA进行计算;4、在excel中显示出计算结果。给你一段我的代码,代码在excel200/XP/2003之下都可以正常运行,2003之后,我没试过,但理论上...

VB系统打开计算器的代码?
VB系统打开计算器的代码?控件为一个按钮。 打开的是系统自带的计算器。 不然弄错了。 麻烦了谢谢 匿名 | 浏览1002 次 |举报 我有更好的答案推荐于2017-12-15 09:46:24 最佳答案 Private Sub Command1_Click()Shell "calc.exe", 1End Subshell是调用函数,可以用来调用可以执行的程序,后面的1是指调用后...

相似回答
大家正在搜