Ho inserito un Timer in un Form per comunicare agli utilizzatori quanto tempo occorre per importare dati da un DB che raggiungo tramite un driver ODBC. Devo importare numerose Tabelle delle quali non conosco la dimensione (Righe) e siccome il processo occupa un tempo ragguardevole mi è stato chiesto appunto di inserire un Timer. Nel processo ho inserito anche una Progressbar e per impostarne il valore ho rilevato tramite una Query il numero di righe di ogni Tabella che devo importare. Durante l'esecuzione di queste Query, specialmente se le righe sono molte, il Timer si ferma e perde anche molti secondi rispetto al tempo di sistema.
Esiste un modo per obbligare il Timer a non "perdere il tempo"?
Di seguito il codice di una Query e dell'impostazione del Timer.

codice:
        Dim rs As New ADODB.Recordset()
        Dim sSQL As String
        Dim M As Integer


        ProgressBar.Value = 1000
        Application.DoEvents()


        sSQL = "SELECT Count(sconto) From ScontoClienti WHERE categoria=1"


        rs.Open(sSQL, CnODBC, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockOptimistic)


        M = rs(0).Value  

        ' M è il valore che utilizzo per gestire la ProgressBar durante la importazione delle Tabelle che avviene ricorsivamente tramite:

        DoUntil rs.EOF
        ......................
        Loop

        'Questo il Timer:

    Private S As Short
    Private N As Short

        Private Sub TimerTempoTrascorso_Tick(sender As Object, e As EventArgs) Handles TimerTempoTrascorso.Tick

        Dim Secondi As String, Minuti As String, TempoTrascorso As String


        S += 1
        N += 1


        Minuti = Int(N / 60)


        If N > 59 Then
            S = N - Minuti * 60
        End If


        If S < 10 Then
            Secondi = ":0" & S
        Else
            Secondi = ":" & S
        End If


        If Minuti < 60 Then
            TempoTrascorso = "0" & Minuti
        Else
            TempoTrascorso = Minuti
        End If


        TempoImport.Text = TempoTrascorso & Secondi


        End Sub

Grazie per qualsiasi suggerimento; di fatto sto passando adesso da VB6 a VB.NET e qualche problema lo sto incontrando.