Pergunta

Digamos que eu tenha duas caixas de texto em um formulário. O primeiro retorna um valor de contagem de uma instrução SQL, ou uma expressão agregada de domínio, etc. O segundo faz o mesmo com parâmetros adicionais.

Agora eu quero ter outra caixa de texto (#3) que divide uma pela outra por uma porcentagem muito simples. Assim para um ControlSource:

=[textbox2]/[textbox1]

Isso funciona muito bem, a menos que o valor contado original retornado seja zero. Se o primeiro valor retornado for zero, o segundo também será zero e, idealmente, 0/0 deve sair para zero, mas eu recebo um #num! string de erro na caixa de texto.

Sei que esse é mais um pedido estranho, mas isso é para uma forma de painel que tem cerca de 50 deles, e eles funcionam muito bem, a menos que eu atinja um zero.

Então, existe alguma maneira de definir propriedades da caixa de texto que eu não tenha consciência, para que isso funcione sem ter que escrever numerosas declarações if no código?

Obrigado!

Foi útil?

Solução

Não consigo ver como você pode evitar uma declaração se dividir por zero é uma possibilidade

=IIf(TextBox1<>0, TextBox2/TextBox1,"N/A")

Outras dicas

Matematicamente, a divisão por 0 é indeterminada, mas para seus propósitos, você pode calculá -la com:

=IIf([textbox1]<>0;[textbox2]/[textbox1];IIf([textbox2]=0;0;"N/A"))

Isto é, quando o TextBox1 é igual a 0, você verifica se o TextBox2 é igual ou não 0. Se esse for o caso, retorne 0, que é o que você deseja.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top