Il problema di non sapere cosa sta facendo l‘ elaborazione di un programma Access è che non si sa se il programma è in loop o se sta effettuando una elaborazione che richiede molto tempo.
Nelle elaborazioni Access che richiedono cicli molto lunghi, è utile mostrare all’ utente una barra di avanzamento che gli permetta di tenere traccia dell’ andamento dell’ elaborazione.
Per realizzare questa funzionalità, è possibile utilizzare il controllo ProgressBar.
Il controllo ProgressBar permette di mostrare all’ utente una barra di avanzamento che gli indica quanto è stato completato dell’ elaborazione in corso.
Inoltre, è possibile utilizzare il controllo ProgressBar per determinare il punto di interruzione dell’ elaborazione.
Per utilizzare il controllo ProgressBar, è necessario aggiungere il controllo al form e impostare alcune proprietà.
In particolare, è necessario impostare la proprietà Value per indicare il valore iniziale della barra di avanzamento, la proprietà Maximum per indicare il valore massimo della barra di avanzamento e la proprietà Step per indicare il valore di incremento della barra di avanzamento.
Per aggiungere il controllo ProgressBar in una form, aprire Controlli della Struttura Modulo
selezionando la voce Controlli ActiveX si apre la finestra Inserisci controllo ActiveX
da questa finestra scegliere la voce Microsoft ProgressBar Control e premere OK.
Supponendo che la form con il controllo ProgressBar si chiami anch’essa ProgressBar ecco lo schema per simulare l’ avanzamento durante una elaborazione ciclica
DoCmd.OpenForm “ProgressBar”, acNormal Form_ProgressBar.progressBar.Value = 10 ……….. y = 20 For Each ………….. If y <= 100 Then y = y + 10 Form_ProgressBar.progressBar.Value = y End If Next DoCmd.Close acForm, “ProgressBar” |
Nel form viene aggiunto un controllo ProgressBar e viene impostata la proprietà iniziale Value a 10, la proprietà Max a 100 e lo Step a 10.
Quando l’ utente avvia l’ elaborazione, la barra di avanzamento inizia a scorrere da sinistra a destra e, man mano che l’ elaborazione procede, il valore della barra aumenta.
Quando il valore raggiunge il valore massimo, la barra di avanzamento si ferma.