Questo nel tuo codice non c'è:
adoPrimaryRS.CursorLocation = adUseClient
Questo nel tuo codice non c'è e ti serve perchè se fai eof e leggi i valori dei campi del record va in errore
If Not(adoPrimaryRS.eof) then
E QUESTO
Dim oText As Field
i= 0
For Each oText In adoPrimaryRS.Fields
TxtFields(i) = adoPrimaryRS(i)
i = i + 1
Next
End if
NON MI SEMBRA UGUALE A QUESTO
Dim oText As TextBox
'Associa le caselle di testo al fornitore di dati
For Each oText In Me.txtFields
Set oText.DataSource = adoPrimaryRS
Next
Utilizzare i nomi delle variabili uguali non significa che il codice è uguale, perchè per associare i campi testi o usi un adodc oppure devi dire che il contenuto dei campi del record nell'ordine della selezione si spostano sui campi testo del form.
Ciao