Newsgroup: it.comp.lang.visual-basic
Titolo: problemi con timer, sovraccarico troppo windows?

Salve ragazzi, il mio problema è il seguente: ogni 60000 milisecondi ovvero
1 minuto eseguo quanto riportato qui sotto con un programma posto nella
systray e che controlla se ci sono record in una query di un db di access,
secondo voi appesantisco troppo windows?
Quesito ^
----------------------------------------------------------------------------
------------------------
Dim db As Connection
Dim rs As Recordset
Dim sql As String
     'apre la connessione al db
     Set db = New Connection
     db.CursorLocation = adUseClient
     db.Open "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security
Info=False;Jet OLEDB:Database Password=8956;Data source=" &
"C:\Programmi\InfoeWeb\Easy2003\easy2003.mdb" & ";"
     Set rs = New Recordset
     rs.ActiveConnection = db
     sql = "SELECT * FROM impegniscaduti"
     rs.Open sql, , adOpenStatic, adLockOptimistic
     If Not rs.EOF Then
        Dim i
        rs.MoveFirst
        For i = 1 To rs.RecordCount
            Dim stringa As String
            stringa = rs![descrizione impegno]
            MsgBox stringa, , "Easy 2003, Avviso Impegno da fare."
            If rs!eseguisuono = -1 Then
                Err =
apisndPlaySound("C:\programmi\infoeweb\easy2003\img\notify.wav", 2)
            End If
            'ora imposto la data alla prossima scadenza con dateadd
            Dim IntervalType As String
            Select Case rs!frequenza
            Case "Una volta"
                rs.Delete adAffectCurrent
            Case "Giornaliero"
                IntervalType = "d"
                rs!dataimpegno = DateAdd(IntervalType, 1, rs!dataimpegno)
            Case "Settimanale"
                IntervalType = "ww"
                rs!dataimpegno = DateAdd(IntervalType, 1, rs!dataimpegno)
            Case "Ogni 15 giorni"
                IntervalType = "d"
                rs!dataimpegno = DateAdd(IntervalType, 15, rs!dataimpegno)
            Case "Mensile"
                IntervalType = "m"
                rs!dataimpegno = DateAdd(IntervalType, 1, rs!dataimpegno)
            Case "Bimestrale"
                IntervalType = "m"
                rs!dataimpegno = DateAdd(IntervalType, 2, rs!dataimpegno)
            Case "Trimestrale"
                IntervalType = "q"
                rs!dataimpegno = DateAdd(IntervalType, 1, rs!dataimpegno)
            Case "Quadrimestrale"
                IntervalType = "m"
                rs!dataimpegno = DateAdd(IntervalType, 4, rs!dataimpegno)
            Case "Semestrale"
                IntervalType = "m"
                rs!dataimpegno = DateAdd(IntervalType, 6, rs!dataimpegno)
            Case "Annuale"
                IntervalType = "yyyy"
                rs!dataimpegno = DateAdd(IntervalType, 1, rs!dataimpegno)
            End Select
            'ora passo al record successivo
            rs.MoveNext
        Next i
     End If
    rs.Close
    Set db = Nothing






Per me è fattibile..
...pero' toglierei pero' la struttura composta da
"If Not rs.EOF Then" e  "For i = 1 To rs.RecordCount"
e lo sostituirei con un
"While not(rs.eof)"
e metterei anche un DB.close prima del set a nothing