USAR 2 IFF PARA FORMATAR NUMEROS

WEBIER 25/07/2010 16:29:15
#348398
fiz a seguite linha no meu sisteminha:

txtDesconto.Caption = IIf(IsNull(rsPedidos!Valor_desc) = True, [Ô]0,00[Ô], IIf(rsPedidos!TIPO_DESC = [Ô]R[Ô], Format(rsPedidos!Valor_desc, [Ô]##,##0.00[Ô]), FormatNumber(rsPedidos!Valor_desc, 2) & [Ô]%[Ô])


a ideia é verificar se o campo Valor_desc está nulo, se nao estiver ele deve preencher o objeto com os dados, mas antes ele tem q verificar o campo TIPO_DESC, caso o campo TIPO_DESC seja a letra [Ô]R[Ô] ele deve formatar assim 10,00 e caso seja a letra [Ô]P[Ô] ele deve colocar o sinal de % no final, ficando assim 10,00%

explixações:
campo TIPO_DESC é do tipo string
campo Valor_desc é do tipo numero duplo

como que eu faço?
EDERMIR 26/07/2010 00:30:13
#348425
Resposta escolhida
Você deve tomar cuidado com o IIF.

O VB6 faz o tratamento da sintaxe na LINHA DE COMANDO. Caso você execute um comando inválido para uma variavel NULA (mesmo que na opção ELSE) o VB vai atribuir um erro na execução. Neste caso eu recomendo ANINHAR IFs:
If IsNull(rsPedidos!Valor_desc) = True then
Wvalorformatado = [Ô]0,00[Ô]
else
If rsPedidos!TIPO_DESC = [Ô]R[Ô] then
Wvalorformatado = Format(rsPedidos!Valor_desc, [Ô]##,##0.00[Ô])
else
Wvalorformatado = FormatNumber(rsPedidos!Valor_desc, 2) & [Ô]%[Ô])
endif
endif
txtDesconto.Caption = Wvalorformatado
Tópico encerrado , respostas não são mais permitidas