Mokor ha scritto:
... il runtime restituiva sempre lo stesso messaggio generico: "Esecuzione dell’applicazione interrotta a causa di un errore di run-time. ?L’applicazione verrà terminata."
Ora lo so, prima no. Ecco che torna in campo l'uso di un sistema di log degli errori "tosto".
Mokor ha scritto:
... ho risolto sostituendo l’ADODB con il DAO ... ??Ora funziona, ...
invece:?
...
Quell' "invece" finale è una sorta di refuso? cioè, alla fine, funziona o no?
TxtCustomer = Nz(DB1("Sgg1Name")) & " " & Nz(DB1("Sgg1Surname"))
...
Tutti i Txt... che si vedono qui sono controlli o variabili? I controlli di tipo testbox gestiscono anche il Null, visto che la proprietà Value è di tipo Variant. Se invece sono variabili stringa il discorso cambia radicalmente.
L'uso di Nz qui è superfluo perché in presenza di un carattere non Null (lo spazio, appunto) e l'uso per la concatenazione della [&] impedisce la "Null propagation". Anzi, potresti sfruttare la propagazione del Null per non doverti curare del fatto che alcuni campi siano Null e trovarti spazi all'interno del controllo o stringa che creano problemi.
Parliamo ad esempio di
TxtAddress = Nz(DB1("Sgg4ResAddress")) & " " & Nz(DB1("Sgg4ResLcl")) & " " & Nz(DB1("Sgg4ResPrv")) & " " & Nz(DB1("Sgg4ResCAP"))
Cosa succede se Sogg4ResPrv è Null? Ti trovi ad avere questo
ResAddress ResLcl ResCAP
Il doppio spazio tra ResLcl e ResCAP è quasi impercettibile, ma c'è.
In generale è per dire che bisogna conoscere bene come concatenare per evitare l'uso superfluo di funzioni.