Newsgroup: it.comp.appl.access
Titolo: Fermare il codice in esecuzione

Salve,
ho un problema. Vorrei fermare il codice di applicazione. Avendo disattivati 
i tasti speciali di Access non so come fare. Con i tasti attivati si riesce 
con Ctrl+Inter. ma via codice non so proprio.
Forse qualcuno mi sa aiutare.
saluti
rolly 

 ha scritto nel messaggio 
news:cvntqa$6sp$1...@newsreader.mailgate.org...

Possono esserci più sistemi, dipende da cosa vuoi fare.
Istruzione STOP (vedi nella guida)
Macro AutoKeys
While...doevents....wend
Ciao, Carlo 

 Ciao, Carlo
il problema é che la routine é partita e non é possibile fermarla. Quando
sono in fase di programmazione si riesce a farlo con Ctrl+Break, ma in fase
di esecuzione dell'utente finale non c'é possibilità. Ho provato con
sendkeys ma non reagisce. Forse mi sai dare qualche dritta.
grazie in anticipo.
rolly

 ha scritto nel messaggio 
news:cvpf8m$q1u$1...@newsreader.mailgate.org...

Puoi spiegarmi perchè e dove si dovrebbe fermare il codice?
Il codice è eseguito alla velocità della luce: dove si deve arrestare?
Sei sicuro che si arresterà esattamente dove vuole il cliente?
Ciao, Carlo 

 Ciao, Carlo
si tratta di una procedura di importazione dati che può durare fino a 1 ora 
(e il pc resta quasi bloccato) dato che ho disattivato i tasti speciali di 
Access il Ctrl+Break (che normalmente mi ferma l'applicazione) non funziona. 
Come posso fare in mode che il cliente possa interrompere l'operazione ?
rolly 

 ha scritto nel messaggio 
news:cvpj17$ttc$1...@newsreader.mailgate.org...

Ora è più chiaro.
Una soluzione:
In un modulo pubblico crea una variabile globale ti tipo booleano: Global 
ArrestaEsecuzione as Boolean
Nel codice che esegue la lunga routine scrivi:
ArrestaEsecuzione = False
While ArrestaEsecuzione = False
'TuoLungoCodice
'Alla fine del lungo codice scrivi:
ArrestaEsecuzione = True
Wend
Su click di un pulsante in una maschera che chiamerai "Stop Esecuzione" 
scrivi
ArrestaEsecuzione  = true
Msgbox "Esecuzione interrotta dall'utente!"
Dovrebbe funzionare. Fai sapere.
Ciao, Carlo 

Ciao Carlo,
 In un modulo pubblico crea una variabile globale ti tipo booleano: Global
 ArrestaEsecuzione as Boolean
 Nel codice che esegue la lunga routine scrivi:
 ArrestaEsecuzione = False
 While ArrestaEsecuzione = False
 'TuoLungoCodice
 'Alla fine del lungo codice scrivi:
 ArrestaEsecuzione = True
 Wend
 Su click di un pulsante in una maschera che chiamerai "Stop Esecuzione"
scrivi
 ArrestaEsecuzione  = true
 Msgbox "Esecuzione interrotta dall'utente!"
ho provato come hai detto, però il problema é che la maschera da cui ho
lanciato la routine sembra paralizzata, cioé non posso cliccare da nessuna
parte e neanche uscire dal programma. Esiste forse un impostazione a livello
di maschera o pulsante ?
grazie per l'aiuto.
rolly

 ha scritto nel messaggio 
news:cvpo9e$43a$1...@newsreader.mailgate.org...

Il codice assorbe molte risorse.
Puoi provare impostando in Etichetta del Pulsante Sto&p Esecuzione
Con la & commerciale.
La pressione di ALT + P dovrebbe riuscire ad arrestare il codice.
Per chiarirti se hai scritto bene l'istruzione While questa esegue un codice 
fino a quando il valore resta quello impostato.
Per cui While ArrestaEsecuzione = False ...Wend
esegue il codice contenuto tra While  e Wend in modo ciclico cioè fino a 
quando ArrestaEsecuzione diventa True.
Controlla se hai scritto proprio così.
Ciao, Carlo 

CUT
dimenticavo: il pulsante deve risiedere preferibilmente nella stessa 
maschera che esegue il codice.
Ciao, Carlo

 schrieb im 
Newsbeitrag news:AJZTd.962437$35.35...@news4.tin.it...

ti sembrera strano ma non c'é niente da fare. Ho provato a mettere un punto 
di arresto (puntino rosso) sul pulsante (click) ma nenche con alt+p viene 
attivato. Soltanto a procedura finita il pulsanto reagisce. Ho provato anche 
ad impostare la maschera su tipo pop-up ma con lo stesso risultato. Hai 
forse un piccolo codice di prova ?
saluti e grazie
rolly 

 ha scritto nel messaggio 
news:cvpvql$cef$1...@newsreader.mailgate.org...

L'unica cosa che mi viene in mente è quella di spostare il codice, 
opportunamente modificato, in un secondo db e poi nelle referenze del primo 
db aggiungere anche questo secondo. In questo modo il codice sarà esterno e 
se non satura completamente il processore, potrebbe anche funzionare.
Altra domanda: ma che razza di operazioni compie? Sono state ben scritte? E' 
possibile snellirle?
Se vuoi puoi mandarmi una copia del db e vedrò cosa posso fare.
Ciao, Carlo 

 ha
scritto:

Ciao, scusate l'intrusione.
Cosa succede mettendo un DoEvents nella routine che inizia l'importazione,
subito dopo il comando per importare i dati?
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

Ciao,
 Ciao, scusate l'intrusione.
Cosa succede mettendo un DoEvents nella routine che inizia l'importazione,
subito dopo il comando per importare i dati?
non é che hai forse un piccolo esempio di codice dato che la guida di access 
é molto vaga su questo comando.
grazie in anticipo.
saluti
rolly