Comando o azione 'incolla' non disponibile

di il
18 risposte

18 Risposte - Pagina 2

  • Re: Comando o azione 'incolla' non disponibile

    18/12/2022 - Mailman ha scritto:


    Sto testando sia con Eval che con Select Case, faccio sapere

    Sono andato ad intuito, convinto che funzionasse.

    L'importante è non usare il GoTo

    Select Case fld.Name
    	Case "IDtabOLid", "DEStabANcespite", "DEStabANcodice"
    	'non fare niente
    	Case Else
    	.Fields(fld.Name) = fld
    End Select
  • Re: Comando o azione 'incolla' non disponibile

    Ero arrivato anche io a questa soluzione ma mi stavo incartando sul primo Case per indicare di "passare oltre": bastava non scrivere nulla…

    Il motivo del non usare il GoTo?

  • Re: Comando o azione 'incolla' non disponibile

    18/12/2022 - Mailman ha scritto:


    Il motivo del non usare il GoTo?

    Nel tuo caso specifico non era così deleterio, in generale l'uso del GoTo (eccezion fatta per la gestione degli errori) rischia di creare il cosiddetto “spaghetti code”, in cui non si capisce più perché si è ad un determinato punto del codice, da dove ci si è arrivati e dove si andrà a finire, con continui “salti”. Rende difficili leggere il codice e di conseguenza anche farne il debug. Oltre alla gestione degli errori, un'altra situazione in cui il GoTo è usato bene è ad esempio l'uscita dalla funzione dove si sono scritte istruzioni da eseguire sempre e comunque, in cui cioè non basta scrivere “Exit Sub” ma c'è un apposito blocco di codice che esegue operazioni, ad esempio, di “pulizia” (chiusura di oggetti, assegnazione a Nothing e simili) da fare anche quando l'uscita dalla funzione/sub è disposta a metà del codice.

    Se ti capita di leggere codice scritto da quelli che se intendono (anche qui) vedrai scarsissimo uso del GoTo per situazioni diverse dalla gestione degli errori e che solitamente rientra nell'altra casistica che ho indicato.

  • Re: Comando o azione 'incolla' non disponibile

    Grazie per la spiegazione.

Devi accedere o registrarti per scrivere nel forum
18 risposte