Access
 sql >> Base de Dados >  >> RDS >> Access

Belos blocos de caldeira


Em meu artigo, The ArrowKeyNav Routine, apresentei um Sub que você pode usar para substituir o manuseio padrão das teclas de seta para cima e para baixo em um formulário contínuo. O problema com a rotina como a apresentei é que você precisa chamá-la de todos os controles em que deseja substituir a funcionalidade da tecla de seta.

Veja como isso pode ser em um módulo de formulário:
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

Existem algumas maneiras de reduzir a quantidade de código padrão que precisamos nessa situação, mas vamos deixar isso de lado para os propósitos deste artigo. Então, para fins de argumentação, vamos apenas supor que não há como reduzir a quantidade de código. Dada essa restrição, como podemos aumentar a legibilidade do código acima?

Juntar linhas de código com o caractere de dois pontos


Podemos juntar várias linhas de código usando o caractere dois pontos (: ).
é usado como um elemento terminal da gramática sintática para nomear o token que atua como um marcador de "fim de instrução". Em geral, o final da instrução é marcado por um ou um caractere de dois pontos .

Melhorando a legibilidade juntando linhas


Esta técnica é algo que você precisa usar com cuidado. Mas, se usado criteriosamente, pode aumentar a legibilidade do seu código.

No código de exemplo acima, cada Sub chama o mesmo código exato:
ArrowKeyNav KeyCode, Shift

Na verdade, isso não é verdade. Se você olhar de perto, verá que o tbProductCode_KeyDown() rotina passa vbKeyDown em vez de KeyCode como o primeiro argumento.

Essa diferença é fácil de perder usando a formatação VBA padrão, no entanto:

Fazer com que o código errado pareça errado


Se juntarmos as linhas usando dois pontos – e ajustarmos o espaço em branco para que todas as nossas chamadas para ArrowKeyNav são alinhados à esquerda - então a inconsistência que se mistura acima se destaca como um polegar dolorido no código abaixo:

Quando visto no contexto de funções normais e sub-rotinas, nosso bloco de código clichê claramente se destaca. Essa distinção ajuda a aumentar a relação sinal-ruído do nosso código: