Newsgroup: it.comp.appl.access
Titolo: un timer interno indipendente dalla maschera attiva

W98, A97
Qual e' l'approccio migliore per attivare un timer interno a una
applicazione, il quale timer ogni 30-60 secondi vada a fare es. una query, e
resti sempre attivo qualunque sia la maschera o la procedura in corso in
quel momento?
Dei clienti vengono accettati allo sportello A e poi vanno indirizzati allo
sportello B. Allo sportello B gira la mia applicazione. Ogni 10-15 clienti
sussitono dei casi particolari per cui gli devo fare a mano un supplemento
di procedura, con perdita di tempo. Questo supplemento vorrei farglielo fare
in automatico, andando a interrogare periodicamente le accettazioni  dello
sportello A per vedere se e' arrivato il caso rognoso, indipendentemente da
quello che sta facendo lo sportello B in quel momento.
Puo' valere la pena di fare una applicazione ad hoc e lanciare una seconda
istanza di Access?
Grazie
balordone

 ha scritto nel messaggio
news:bc9aob$gkbhu$1...@ID-163647.news.dfncis.de...

Io ti consoglierei di disporre un form apposito che apri in modalità acHidden, magari come
maschera di avvio del tuo db che, oltre ad eseguire le operazioni di avvio, ti fa anche da
contatore per tutte le operazioni che vuoi.
Io in genere imposto la routine Timer in questo modo:
Private Sub Form_Timer()
Dim StepMin as Double
Static CounterOperazione1 As Double
Static CounterOperazione2 As Double
Const MinOperazione1 As Double = 5
Const MinOperazione2 As Double = 10
On Error Resume Next
StepMin = Me.TimerInterval / 60000
CounterOperazione1 = CounterOperazione1  + StepMin
If CounterOperazione1 >= MinOperazione1 Then
    Call Sub_Operazione1
    CounterOperazione1 = 0
End if
CounterOperazione2 = CounterOperazione2  + StepMin
If CounterOperazione2 >= MinOperazione2 Then
    Call Sub_Operazione2
    CounterOperazione2 = 0
End if
End Sub
Ciao, omnitow

 ha scritto nel messaggio
news:bc9aob$gkbhu$1...@ID-163647.news.dfncis.de...

La via più semplice è quella di usare l'evento Timer di una maschera, anche
se questa può essere ridotta ad icona.
Il codice funziona solo se la maschera è aperta anche se iconizzata o
invisibile.
L'intervallo timer va impostato a 1000 X il numero di secondi. Per 30
secondi impostare 30000.
Ciao, Carlo

 ha scritto nel messaggio
news:bc9aob$gkbhu$1...@ID-163647.news.dfncis.de...

Non sono sicuro di aver ben capito il tuo problema, ma se all'apertura del
tuo database apri una maschera che rendi non visibile, e per questa maschera
imposti la proprietà Intervallo timer, la routine VBA che hai generato a
fronte dell'evento "Su timer" di tale maschera verrà eseguita con regolarità
a prescindere da quale maschera è attiva in quel momento.
-- 
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
--------------------------------------------- 

 imposti la proprietą Intervallo timer, la routine
Vi ringrazio, mi avete dato indicazioni convergenti di fare una maschera
occulta. Non possedevo il concetto di maschera invisibile.
Grazie a tutti
PS ora ho messo la maschera invisibile (docmd.openform "miaform", acnormal
,,, acIcon o acHidden), se adesso volessi avere un flag sul main menu che mi
dice che questo watchdog nascosto in sottofondo sta girando, cosa potrei
fare?
primo tentativo ho messo un interruttore invece di un pulsante, l'idea
sarebbe: interruttore abbassato = processo attivo, interruttore alzato=
processo disattivo. Non trovo un vero modo di controllare lo stato
dell'interruttore, in cosa si differenzia dalla gestione di un pulsante?
Secondo tentativo ho messo un bollino che quando parte la form temporizzata,
me lo va a colorare di rosso. Sarebbe carino un controllo activeX con
l'icona di un semaforino, esiste?
Grazie,
Balordone

 Balordone
La cosa miglio a mio avviso è che ti dichiati in un modulo del tuo database
una variabile booleana pubblica che potrai quindi settare e testare da
qualsiasi punto del database per farne l'uso che più ritieni opportuno.
