DamascenoJr. 1/10/2019, 02:50
[NomeCampo]
Esta indicação é neutra. Algo como a tal célula tronco, isto é, pode indicar qualquer propriedade do controle ou até mesmo o próprio controle.
Veja:
- Código:
Dim ctl as control
Dim strX as string
ctl = me![NomeCampo] 'aqui a variável ctl assumirá tudo e todas as propriedades do controle [NomeCampo]
strX = me![NomeCampo] 'aqui a variável strX assumirá o valor do controle [NomeCampo]
'se [NomeCampo] tiver o valor "FulanoDeTal" então strX será "FulanoDeTal"
Como eu disse, neste caso a indicação é neutra, o que será assumido depende de como e onde será usado.
Text e Value são quase iguais. Com o "Text" você consegue capturar o valor de um campo no momento em que ele está sendo digitado. É mais usado no evento "Ao alterar" pois a medida que o usuário vai alterando um controle o valor vai sendo capturado. Formulários que usam filtros a medida que o usuário digita é exemplo de uso desta propriedade. Se você usar esta propriedade no evento após atualizar então não terá diferença para o "Value".
O "value" é usado para dar indicação completa. Eu não tinha o hábito de usá-lo, mas passei a ter. Com ele eu digo direto ao código que o que deve ser capturado é o valor de um controle. Assim o código não precisa interpretar o que deve ser lido no controle como nos casos das indicações neutras.
Alguns usuários declaram as variáveis mas não dizem o tipo, com isso abre margem pro código interpretar como quer, veja
- Código:
Dim varVariant
varVariant = me![NomeCampo] 'aqui a variável assumirá tudo e todas as propriedades do controle, ou seja, será do tipo control
varVariant = me![NomeCampo].Value 'aqui a variável assumirá o valor do controle, ou seja, poderá será um valor do tipo texto, numérico, booleano, data