Set Rs = Conn.Execute("Select top 50000 * From tbTemp")
Do Until Rs.EOF
  Text1.Text = Rs("id")
  DoEvents
  Rs.MoveNext
Loop如上程序,我在运行时Text正常显示当前的id,如果Do没执行完,当我点关闭时,窗口关闭,但是资源管理器中还存在该进程;如果Do循环完,当点击关闭时才正常结束,请问,如何在Do没执行完的情况下,当我点击关闭时,可以正常的关闭?关闭是窗口左上角的X,或End代码。

解决方案 »

  1.   

    循环没完成,进程还在运行中
    1、在声明部分添加变量f作结束标志
    Dim f As Boolean2、Do Until Rs.EOF修改为
    Do Until Rs.EOF Or f3、Form_Unload中添加
    f=True
      

  2.   

    可以用暴力手段,在Form_Unload中添加一句end即可。
      

  3.   

    DoEvents 表示停止并交给系统排列后继续运行
    我通常做2个按钮,一个是停止,一个是关闭,停止就用1楼的方法,先跳出循环,程序执行到底结束,这时你再关闭就没有任何问题了;关闭用end代码,window的右上角的x按钮点击后虽然在Form_Unload中执行,但是直接点击的话还是会有未结束的进程存在,用end也得先将当前程序执行完(代码从上到下)才行,否则也会存在未结束的进程。
    关闭时必须保证代码从上到下已经读完才行,所以跳出循环是很完美的一招。
      

  4.   

    建议关闭前先设法退出DO循环,或强制终止Do循环,不然你的进程就会在任务管理器中存在。