wilKs
|
ITABORAÍ RJ - BRASIL
|
|
Postada em 23/07/2004 00:48 hs
Olá! Custei, mas entendi o porquê dessa... ;)
Var1 = 0 Var2 = IIf(Var1 <> 0, Mid("ValorA", Var1, 6), "ValorB")
|
|
|
|
|
Postada em 23/07/2004 10:09 hs
Esse código dá pau....o que vc descobriu???
|
|
|
wilKs
|
ITABORAÍ RJ - BRASIL
|
|
Postada em 23/07/2004 10:23 hs
Escreve o teu e-mail que eu te digo! Não espalha não... 
|
|
|
|
Postada em 23/07/2004 11:16 hs
Quando é usado o IIF, as duas instruções devem ser válidas para funcionar e a primeira instrução - Mid("ValorA", Var1, 6) está errada, porque o Var1 é zero e a string não tem posição zero (começa no 1). Não sei até que ponto isto pode ser considerado um bug.
|
|
|
wilKs
|
ITABORAÍ RJ - BRASIL
|
|
Postada em 23/07/2004 13:43 hs
Semmer, A função IIf é uma simplificação de If <expressão> Then <parte true> Else <parte false>. Você não acha que quando uma instrução aponta para um caminho válido, o correto é que o programa siga para aquele caminho válido, mesmo que exista um caminho inválido?
|
|
|
|
Postada em 23/07/2004 15:20 hs
certo wilks, mas o interpretador do vb lê a linha de código inteira e se tiver algo errado nesta linha, dá pau. quando você faz "if <expressão> then <parte true> else <parte false> end if", se a expressão for verdadeira, não tem problema da linha da parte false estar errada (desque não seja erro de sintaxe) porque o interpretador não passa por esta linha. mas na instrução iif(), está tudo na mesma linha e mesmo que apenas uma parte da instrução seja executada, as duas são analisadas pelo interpretador, por isso dá erro.
|
|
|