bean_bandit ha scritto:
ho provato Screen.ActiveControl.DefaultValue e... funziona (quasi!) anche se non mi propone .DefaultValue tra le possibili scelte di ActiveControl
Perché non può sapere che tipo di controllo è e, come dicevo prima, non tutti hanno la proprietà .DefaultValue, per questo l'intellisense non lo propone.
bean_bandit ha scritto:
... unico problema mi scrive "Cerca cliente" virgolette incluse....
A questo penso che si possa porre rimedio con un Mid$.
Quello che mi chiedo è se l'uso di Screen.ActiveControl sia il sistema migliore. Siccome ActiveControl è uno solo, come vai a reimportare tutti gli altri?
Se i controlli non sono tanti, nel momento in cui "resetti" i parametri valorizzi i singoli controlli (textbox e combobox immagino) con il .DefaultValue, elencandoli tutti.
Se sono numerosi potresti valutare di creare un ciclo nella collection Controls della form, impostando come criterio di esecuzione del codice dentro il ciclo un valore indicato nella proprietà Tag, che dice quali resettare.
For each ctl in Me!Controls
On Error Resume Next
If ctl.Tag = "Y" Then
ctl.Value = ctl.DefaultValue 'eventualmente con il Mid$
End If
Next
On Error ...
Occhio al discorso gestione degli errori: l'ho fatto perché non tutti i controlli hanno la proprietà Tag (credo) quindi se non la trova prosegue passando al controllo successivo.
A mio avviso non vale la pena ciclare tutti i controlli per poi verificare se il Tag è valorizzato a Y perché ripristinare il valore di default, credo sia più veloce riassegnare il DefaulValue a quelli specifici.