Access
 sql >> Database >  >> RDS >> Access

Bellissimi blocchi di caldaia

Nel mio articolo, The ArrowKeyNav Routine, ho presentato un Sub che puoi usare per sovrascrivere la gestione predefinita dei tasti freccia su e giù su un modulo continuo. Il problema con la routine come l'ho presentata è che devi chiamarla da ogni controllo in cui vuoi sovrascrivere la funzionalità del tasto freccia.

Ecco come potrebbe apparire in un modulo modulo:

Private Sub cbSupplierID_KeyDown(KeyCode As Integer, Shift As Integer)
    ArrowKeyNav KeyCode, Shift
End Sub

Private Sub chkDiscontinued_KeyDown(KeyCode As Integer, Shift As Integer)
    ArrowKeyNav KeyCode, Shift 
End Sub

Private Sub tbID_KeyDown(KeyCode As Integer, Shift As Integer)
    ArrowKeyNav KeyCode, Shift
End Sub

Private Sub tbListPrice_KeyDown(KeyCode As Integer, Shift As Integer)
    ArrowKeyNav KeyCode, Shift
End Sub

Private Sub tbProductCode_KeyDown(KeyCode As Integer, Shift As Integer)
    ArrowKeyNav vbKeyDown, Shift
End Sub

Private Sub tbProductName_KeyDown(KeyCode As Integer, Shift As Integer)
    ArrowKeyNav KeyCode, Shift
End Sub

Ci sono un paio di modi per ridurre la quantità di codice standard di cui abbiamo bisogno in questa situazione, ma lo metteremo da parte ai fini di questo articolo. Quindi, per motivi di discussione, assumiamo che non ci sia modo di ridurre la quantità di codice. Dato questo vincolo, come possiamo aumentare la leggibilità del codice sopra?

Unire righe di codice con il carattere due punti

Possiamo unire più righe di codice usando il carattere due punti (: ).

viene utilizzato come elemento terminale della grammatica sintattica per denominare il token che funge da indicatore di "fine dichiarazione". In generale, la fine dell'istruzione è contrassegnata da un o da un carattere due punti .

Miglioramento della leggibilità unendo le righe

Questa tecnica è qualcosa che devi usare con cura. Ma, se usato con giudizio, può aumentare la leggibilità del tuo codice.

Nel codice di esempio sopra, ogni Sub chiama lo stesso codice esatto:

ArrowKeyNav KeyCode, Shift

In realtà, non è vero. Se guardi da vicino, vedrai che il tbProductCode_KeyDown() la routine passa vbKeyDown invece di KeyCode come primo argomento.

Tuttavia, è facile non notare questa differenza utilizzando la formattazione VBA standard:

Fare sembrare sbagliato il codice sbagliato

Se uniamo le linee usando i due punti e regoliamo lo spazio bianco in modo che tutte le nostre chiamate a ArrowKeyNav sono allineati a sinistra, quindi l'incoerenza che si fonde sopra risalta come un pollice dolente nel codice seguente:

Se visto nel contesto di normali funzioni e subroutine, il nostro blocco di codice standard si distingue chiaramente. Questa distinzione aiuta ad aumentare il rapporto segnale/rumore del nostro codice: