Cronometro

di il
5 risposte

Cronometro

Buongiorno a tutti, ho "qualche" problemino con la compilazione del codice per un timer in una maschera. Il timer parte in automatico quando apro suddetta maschera, misura il tempo in secondi e va bene.
Ho inserito dei pulsanti per stoppare il timer, farlo riprendere e resettarlo.

Il problema, ora, è il seguente: voglio che schiacciando un pulsante (nominato SalvaTempo) venga memorizzato l'istante a cui l'ho schiacciato in una casella di testo denominata TotaleTempo, il timer poi deve azzerarsi e ripartire. Se dovessi premere di nuovo SalvaTempo, però, il valore nuovo deve sommarsi al precedente.
Infine, devo salvare il totale del tempo trascorso in un nuovo record contenente la colonna TEMPO.

Il codice che ho provato ad inserire è il seguente, ma anzichè sommare come ho detto sopra, sostituisce l'attuale tempo al precedente.
Private Sub SalvaTempo_Click()

    Dim SecondiTotali As Integer
    Dim Contatore1 As Integer
    Dim s As Integer
    Dim b As Integer
        
    s = 0
    TotaleOre.Value = b
        
        If b = s Then
            TotaleOre.Value = Contaore
                Else
                    SecondiTotali = Contaore
                            TotaleOre.Value = SecondiTotali + b                            
        End If
    Contaore = 0
    Clocksec.Value = 0
    
End Sub
Contaore è il contatore per far scorrere i secondi, Clocksec è il nome della casella di testo all'interno della quale scorrono i secondi.

Spero di essere stato sufficientemente chiaro nell'esporre il problema e corretto nello scrivere il thread. Essendo proprio alle prime armi con VB ed Access spero che qualcuno riesca ad aiutarmi quasi passo per passo.
Grazie mille!

5 Risposte

  • Re: Cronometro

    Devi memorizzare i dati in variabili esterne... così come hai fatto le inizializzi ogni volta che premi...
  • Re: Cronometro

    @Alex ha scritto:


    Devi memorizzare i dati in variabili esterne... così come hai fatto le inizializzi ogni volta che premi...
    Grazie per la risposta @Alex.
    Dovrei quindi dichiarare inizialmente altre variabili, e poi nel ciclo If porre il valore della cella che mi interessa uguale a tali variabili?
  • Re: Cronometro

    Sinho89 ha scritto:


    @Alex ha scritto:


    Devi memorizzare i dati in variabili esterne... così come hai fatto le inizializzi ogni volta che premi...
    Grazie per la risposta @Alex.
    Dovrei quindi dichiarare inizialmente altre variabili, e poi nel ciclo If porre il valore della cella che mi interessa uguale a tali variabili?
    Innanzitutto devi spiegare bene il compito che ti hanno assegnato.
    Devi visualizzare il Tempo che trascorre in una TextBox...?

    Questo codice ad Esempio fa una sorta di cronometro
    
    Option Compare Database
    Option Explicit
    
    Dim mT  As Variant
    
    Private Sub Comando0_Click()
        If IsNull(mT) Then
            Me.TimerInterval = 500
            mT = Time
        Else
            mT = Null
            Me.TimerInterval = 0
        End If
    End Sub
    
    Private Sub Form_Timer()
        Me.Testo1.Value = Format(Time - mT, "hh:mm:ss")
    End Sub
  • Re: Cronometro

    @Alex ha scritto:


    Innanzitutto devi spiegare bene il compito che ti hanno assegnato.
    Devi visualizzare il Tempo che trascorre in una TextBox...?
    La mia necessità è :
    - visualizzare in una casella di testo i secondi che passano (cosa che riesco a fare),
    - poter salvare in una casella tale valore,
    - aggiornare il totale dei secondi passati (Per esempio: apro la maschera, lavoro per 100 secondi, poi schiaccio il tasto di salvataggio del tempo, mi salva tale valore in una casella e deve essere tenuto in memoria...in modo tale che se chiudo e ri-accedo alla maschera, avrò già come tempo di lavoro sulla maschera i 100 secondi. A questo punto il cronometro ripartirà da zero, se schiaccio ancora il "salva tempo" dopo, esempio, 5 secondi, andrà ad aggiornarmi il totale dei secondi passati come somma tra 100 secondi e 5 secondi.)

    Spero di essere stato esauriente nella spiegazione
  • Re: Cronometro

    Sinho89 ha scritto:


    La mia necessità è :
    - visualizzare in una casella di testo i secondi che passano (cosa che riesco a fare),
    Noi su questo andiamo in Fiducia, perchè quello che hai esposto di certo non lo fa...!

    Sinho89 ha scritto:


    - poter salvare in una casella tale valore,
    Basta scriverlo nella TextBox come ti ho mostrato nel mio esempio... se invece vuoi SALVARLO devi far riferimento ad una Tabella... quindi passi ad una gestione legata ai dati.

    Sinho89 ha scritto:


    - aggiornare il totale dei secondi passati (Per esempio: apro la maschera, lavoro per 100 secondi, poi schiaccio il tasto di salvataggio del tempo, mi salva tale valore in una casella e deve essere tenuto in memoria...in modo tale che se chiudo e ri-accedo alla maschera, avrò già come tempo di lavoro sulla maschera i 100 secondi. A questo punto il cronometro ripartirà da zero, se schiaccio ancora il "salva tempo" dopo, esempio, 5 secondi, andrà ad aggiornarmi il totale dei secondi passati come somma tra 100 secondi e 5 secondi.)
    Bene, partendo dal valore presente nella Tabella ed associato alla TextBox, dovrai andare ad aggiungerlo quando premi il Button...

    Il codice che ti ho scritto sopra, fa già una buona parte(ad esclusione del SALVATAGGIO)... prova a rivedere le tue impostazioni e struttura e prova a buttare giù un tuo progetto.

    Spero di essere stato esauriente nella spiegazione[/quote]
Devi accedere o registrarti per scrivere nel forum
5 risposte