INTERROMPENDO LOOP DO... WHILE

USUARIO.EXCLUIDOS 25/03/2005 16:44:43
#74926
Eu gostaria de saber como faço para interromper um loop do....while, a hora que eu quiser, pressionando um botao.
Tipo assim, se eu carregar um recordset com 10000 registros e começar encher um grid com estes dados e na metade do caminho, eu desejasse interromper a tarefa pressionando um botao.
Com isso o programa sairia do loop, sem ter que percorrer todos os 1000 registros

Obrigado

Marcelo
WEBMASTER 25/03/2005 16:46:32
#74927
Para sair do loop :


if(x=1)then
Do
print "Olá!"
exit do ' isto sai do loop
While x=1
end if


Ok ?
IVOFABIANO 25/03/2005 17:05:24
#74931
Resposta escolhida
uma da possíveis formas é assim :


Dim Flag as boolean

No evento KeyPress do Form (ou no evento Click de um botão):

If KeyAscii = 13 Then
KeyAscii = 0
Flag = True
End If

Na sua função faça assim:
Do
DoEvents
If Flag then
Flag = False
Exit Do
End if

seus comandos ...

While x=1


ou assim: (So que depois vc deve colocar a variavel Flag como False de novo qdo sair do Loop)

Do
DoEvents
seus comandos ...

While x=1 or Flag = False



Abs.

USUARIO.EXCLUIDOS 25/03/2005 17:14:50
#74932
pega ai

Declare uma variavel no general do seu form

Dim IntKey as integer

assim

Do Until IntKey = vbkeyEscape

instruções
Doevents
loop

No evento keyup do form digite:

intkey = vbkeycode

pronto agora teste

Bom aproveito

Espero ter ajudado





USUARIO.EXCLUIDOS 25/03/2005 18:10:42
#74938
Vai ter gente me batendo pelo meu post =PPPPPP

Do
goto qqcoisa
Loop
qqcoisa:
USUARIO.EXCLUIDOS 25/03/2005 19:06:23
#74940
cara usa exit do, dá certinho pro seu problema, falow espero ter ajudado
USUARIO.EXCLUIDOS 26/03/2005 08:56:48
#74982
Eu faço assim
no DECLARATIONS do form eu coloco

Dim Sair as Integer * 1


No form KEYPRESS
(Não se esqueça de colocar o KEYPREVIEW para true)

If keyascii = 13 then
Sair = 1
End if


No loop eu faço assim

Do while not Tabela.Eof
If Sair = 1 Then
If Msgbox("Deseja realmente sair?", VbyesNo) = VbYes then
Exit Do
Else
Sair = 0
End if
'comandos para adicionar.. e etc
Loop

Sacou... quando estiver no loop se a pessoa apertar o ENTER.. ele pergunta se quer sair.. se clicar em sim.. sai.. se clicar em não... continua normalmente..
IVOFABIANO 26/03/2005 12:34:53
#75019
Corrigindo um peq lapso:


Do
DoEvents
seus comandos ...

While x=1 And Flag = False

Flag = False
USUARIO.EXCLUIDOS 26/03/2005 21:33:03
#75127
cara usa enddo ou doeventes

falow
USUARIO.EXCLUIDOS 26/03/2005 21:42:33
#75131
Qual a necessidade de uma resposta dessas, JEFINHO?
USUARIO.EXCLUIDOS 27/03/2005 18:20:47
#75206
Fazendo uma correção no meu topico acima em vez de

Intkey = vbkeycode mude para intkey = keycode

mais uma, para sair do loop

verifique o fim do banco de dados

assim:

if tabela.eof then
Exit do
end if

Desculpe os erros

Espero ter ajudado

Tópico encerrado , respostas não são mais permitidas