Buongiorno a tutti.
Come faccio da molto tempo, chiedo il vostro aiuto per poter visualizzare , tramite la barra di stato, l'avanzare dell'operazione di aggiornamento ( utilizzando le transazioni) di migliaia di records in tabella come da codice seguente.
Spiego il mio progetto di prova che sto utilizzando per poter visualizzare nella barra di stato quanto chiedo.
- ho una tabella chiamata Tabella1 con 2 campi chiamati ( Numero e Anno).
- aggiorno tutti i record con l'anno attuale.
Private Sub TestTransazioni()
On Error GoTo Err_TestTransaction
Dim db As DAO.Database
Dim n As Double
'Mostra la clessidra
DoCmd.Hourglass True
Set db = DBEngine.OpenDatabase("C:\Users\Desktop\UTILIZZO DELLE TRANSAZIONI .accdb")
DBEngine.BeginTrans
For X = n To 80000
' inizia il conteggio sulla barra di stato
SysCmd acSysCmdInitMeter, "Updating: ", X
db.Execute "INSERT INTO Tabella1 (Numero, Anno) " & _
"VALUES (" & X & "," & Year(Now()) & ");"
SysCmd acSysCmdUpdateMeter, X
Next
SysCmd acSysCmdRemoveMeter
DBEngine.CommitTrans
DoEvents
MsgBox "Inseriti n. " & X - n
Exit_Here:
db.Close
Set db = Nothing
'Rimuovi la clessidra
DoCmd.Hourglass False
Exit Sub
Err_TestTransaction:
DBEngine.Rollback
MsgBox Err.Description
Resume Exit_Here
End Sub
Non riesco a visualizzare bene la percentuale di avanzamento nella barra di stato (come da immagine 1 allegata), la casella di testo riporta integralmente il colore di sfondo pieno e non accade nulla, mi aiutate a capire come correggere questo per ottenere
quanto richiesto?
Spero di essere stato chiaro, ringrazio anticipatamente chi mi aiuta in questo.
Tutto il resto invece funziona benissimo, compreso l'aggiornamento dei records ed il messaggio finale.


