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

Smukke blokke af kedelplade

I min artikel, The ArrowKeyNav Rutine, præsenterede jeg en Sub, som du kan bruge til at tilsidesætte standardhåndteringen af ​​piletasterne op og ned på en kontinuerlig formular. Problemet med rutinen, som jeg præsenterede den, er, at du skal kalde den fra hver kontrol, hvor du vil tilsidesætte piletastens funktionalitet.

Sådan kan det se ud i et formularmodul:

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

Der er et par måder at reducere mængden af ​​kedelkode, vi har brug for i denne situation, men vi sætter det til side med henblik på denne artikel. Så lad os for argumentets skyld bare antage, at der ikke er nogen måde at reducere mængden af ​​kode på. Givet denne begrænsning, hvordan kan vi øge læsbarheden af ​​ovenstående kode?

Sammenføjning af kodelinjer med kolon-tegnet

Vi kan forbinde flere linjer kode ved at bruge kolon-tegnet (: ).

bruges som et terminalelement i den syntaktiske grammatik til at navngive token der fungerer som en "end of statement"-markør. Generelt er slutningen af ​​sætning markeret med enten et eller et kolontegn .

Forbedring af læsbarheden ved at samle linjer

Denne teknik er noget, du skal bruge med omhu. Men hvis det bruges fornuftigt, kan det øge læsbarheden af ​​din kode.

I eksempelkoden ovenfor kalder hver Sub den samme nøjagtige kode:

ArrowKeyNav KeyCode, Shift

Det er faktisk ikke sandt. Hvis du ser godt efter, vil du se, at tbProductCode_KeyDown() rutinen sender vbKeyDown i stedet for KeyCode som det første argument.

Denne forskel er dog let at gå glip af ved at bruge standard VBA-formatering:

Får forkert kode til at se forkert ud

Hvis vi forbinder linjerne ved hjælp af koloner – og justerer mellemrummet, så alle vores opkald til ArrowKeyNav er venstrejusteret – så skiller den inkonsekvens, der smelter sammen ovenfor, sig ud som en øm tommelfinger i koden nedenfor:

Når det ses i sammenhæng med normale funktioner og underrutiner, skiller vores blok af kedelkode sig tydeligt fra hinanden. Denne sondring hjælper med at øge signal/støjforholdet for vores kode:


  1. Sådan rettes "EXECUTE-sætningen mislykkedes, fordi dens WITH RESULT SETS-klausul specificerede 2 kolonne(r) for resultatsæt..." Meddelelse 11537 i SQL Server

  2. Sådan får du den aktuelle dato og tid med tidszoneforskydning i PostgreSQL

  3. PGError:FEJL:tilladelse nægtet til relation (når du bruger Heroku)

  4. Hvordan får man effektiv Sql Server-deadlock-håndtering i C# med ADO?