In Access, sto usando ADO per effettuare modifiche sui record di un database via codice VBA:

Ho fatto una form con una listbox che visualizza il contenuto di una tabella. In questa form ci sono pulsanti per aggiungere e modificare i record della listbox.
Ogni pulsante apre un'altra form in WindowMode acDialog, per cui il codice della form chiamante si ferma fino a quando la form di modifica/aggiunta record non viene chiusa.

Nella form di modifica/aggiunta ha dei controlli non associati in cui raccogliere i dati, e routine ADO per aggiungere record o per modificare (come nell'esempio):
codice:
      rst.Open "Agenzie", cnn, adOpenKeyset, adLockOptimistic
      rst.Find "idAgenzia = " & Me.idRec
      If rst.EOF Then
        Beep
        MsgBox "Record non trovato!", vbCritical
      Else
        rst!txtNomeAgenzia = Me.txtAgenzia
        rst!txtIndirizzo = Me.txtIndirizzo
        rst!txtLocalita = Me.txtLocalita
        rst!txtProvincia = Me.txtProvincia
        rst!txtTelefono = Me.txtTelefono
        rst!txtCellulare = Me.txtCellulare
        rst!txtFax = Me.txtFax
        rst!txtEmail = Me.txtEmail
        rst!txtPIVA = Me.txtPartitaIva
        rst!memNote = Me.txtNote
        rst.Update
      End If
A questo punto (dopo la modifica o l'aggiunta di un record e la conseguente chiusura della form di editing) la form chiamante esegue una Requery della listbox...
Ma non succede nulla! La listbox non viene aggiornata.
Ma se chiudo la form e la riapro, le modifiche ci sono!

Allora ho aggiunto un pulsante per fare la requery manuale della listbox: la modifica al record oppure il nuovo record compaiono dopo qualche secondo!
ADO è così lento? Mi serve che le modifiche siano subito visibili, o perlomeno che io non possa fare nulla finchè le modifiche siano disponibili (e ovviamente senza usare il pulsante che fa la requery). Avete qualche suggerimento?
Grazie!