Doppio timer in un form access

di il
7 risposte

Doppio timer in un form access

Volevo chiedere se in un form di access sia possibile utilizzare 2 timer separati con del codice tipo:
Private Sub Form_Load()
Dim retval As Long ' return value

retval = SetTimer(Form1.hWnd, 1, 500, AddressOf TimerProc1)
retval = SetTimer(Form1.hWnd, 2, 500, AddressOf TimerProc2)
End Sub

Private Sub Form_Unload(Cancel As Integer)
Dim retval As Long ' return value

retval = KillTimer(Form1.hWnd, 1)
retval = KillTimer(Form1.hWnd, 2)
End Sub

Grazie per ogni contributo

7 Risposte

  • Re: Doppio timer in un form access

    In access non hai il Controllo Timer ma l'evento Timer... che imposti con la Frequenza che vuoi e nell'evento Esegui le procedure necessarie.
    Se i Tempi sono diversi devi trovare il Massimo divisore dei 2 tempi... ed impostare il TimerInterval a quel valore, quindi implementare un Counter per quello più Lungo.

    Esempio
    Tempo1=200
    Tempo2=500
    TimerInterval=100
    
    Private iCount as integer
    
    Private Sub Form_Load()
       Me.TimerInterval=100
    End Sub
    
    Private Sub Form_Timer()   
       ICount=Icount+1
       Select case ICount
          Case 2,4: 	Call FiringTimer1(...)
          Case 5: 	 	Call FiringTimer2(...):ICount=0
       End Select
    End Sub
  • Re: Doppio timer in un form access

    Ok grazie
  • Re: Doppio timer in un form access

    Quindi scusami volendo utilizzare il settimer in un form access non si può fare o meglio non è conveniente?
  • Re: Doppio timer in un form access

    Ni non su può... ma non ha senso farlo... si possono configurare i timer API con il callback ma sarebbe assurdo farlo.

    Il timer API si usa in Excel perché non ha nulla mentre in VB6 il timer era un controllo ActiveX da inserire nelle form... in Access c'è un metodo Nativo... si usa quello.

    Perché tu vuoi usare metodi/sistemi non nativi...?
  • Re: Doppio timer in un form access

    No è che sembra che il timer nativo di un form di access si disattiva quando il form viene settato invisibile e quando viene reso nuovamente visibile il timer non funziona più. .... tutto qui...
  • Re: Doppio timer in un form access

    Mmm uso finestre sempre hidden per gestire varie cose nel DB... ma non ho badato e non ne sono a conoscenza, per differente utilizzo, se sia collegato un baco alla variazione di visualizzazione.
    Faccio una verifica appena riesco.

    Valuta anche che puoi usare una Form sempre HIDDEN e gestire poi il codice a seconda della ActiveForm.
    Le.form possono disporre di Public Properties/Function/Sub sicché semlre dalla Form_Hidden puoi rilanciare il timer sulla sola activeForm presiaponendo appunto una proprieta o metodo public uguale in tutte le form...

    Prova a vedere...

    Se vuoi puoi vedere questo demo con una classe e le API per il timer ed il relativo CallBack.

    https://access-programmers.co.uk/forums/showthread.php?t=232012
  • Re: Doppio timer in un form access

    Fatto un Test, su Form Hidden e ripristinata la Visibilità... il Timer non ha alcun difetto, ovviamente funziona in Modalità Hidden e non presenta anomalie ritornando Visibile.
Devi accedere o registrarti per scrivere nel forum
7 risposte