SOMA EM FORMULARIO

CHARLESTON10 07/12/2011 08:51:41
#390762
[ô]- aff não era pra dar erro

tente isso novamente ^^
[ô]-> tratamento de erro
     If  rs([Ô]TOTAL_MOVIMENTOS[Ô])   = Empty Or rs([Ô]TOTAL_MOVIMENTOS[Ô]) = [Ô][Ô] Or rs([Ô]TOTAL_MOVIMENTOS[Ô]) = Null Then
TMOvimento = 0
else
TMOvimento = rs([Ô]TOTAL_MOVIMENTOS[Ô])
End If


Se não der certo;

    
[ô]Se o campo da tabela nao for nulo atribui a variavel o valor do campo
[ô]Se for nulo a variavel recebe 0

If rs([Ô]TOTAL_MOVIMENTOS[Ô]) = Not Null Then
TMOvimento = rs([Ô]TOTAL_MOVIMENTOS[Ô])
else
TMOvimento = 0
End If
DOUGLASGARCIA 07/12/2011 09:24:27
#390766
o codigo ficou assim:

Dim TMOvimento As Currency
Dim LoteMInimo As Currency

Lista.ListItems.Clear

If rs.RecordCount = 0 Then Exit Sub

While Not rs.EOF

[ô]-> tratamento de erro
If rs([Ô]TOTAL_MOVIMENTOS[Ô]) = Not Null Then
TMOvimento = rs([Ô]TOTAL_MOVIMENTOS[Ô])
Else
TMOvimento = 0
End If


[ô]-> tratamento de erro
If rs([Ô]lote_minimo[Ô]) = Empty Then
LoteMInimo = 0
Else
LoteMInimo = rs([Ô]lote_minimo[Ô])
End If


Set lst = Lista.ListItems.Add(, , rs(0))
lst.SubItems(1) = rs([Ô]DescriÇÃO[Ô])
lst.SubItems(2) = rs([Ô]TOTAL_MOVIMENTOS[Ô]) aqui dá erro: invalid use of null

lst.SubItems(3) = rs([Ô]lote_minimo[Ô])
lst.SubItems(4) = TMOvimento + LoteMInimo
rs.MoveNext
Wend

End Sub[txt-color=#e80000] [/txt-color]
CHARLESTON10 07/12/2011 21:07:17
#390812
Corrige isso tambem.
ao inves de [Ô] If rs([Ô]lote_minimo[Ô]) = Empty Then[Ô] usa o mesmo do de cima..

     [ô]-> tratamento de erro
If rs([Ô]lote_minimo[Ô]) = Not Null Then [ô]
LoteMInimo = rs([Ô]lote_minimo[Ô])
Else
LoteMInimo = 0
End If


Faz assim, ao inves de preencher com o campo da tabela, pra nao dar erro, usa o valor da variavel, pois ja vai corrigir, pois vai ficar com o valor da tabela, ou senão fica 0;
ai nao da problemas.

  Set lst = Lista.ListItems.Add(, , rs(0))
lst.SubItems(1) = rs([Ô]DescriÇÃO[Ô])
lst.SubItems(2) = TMOvimento
lst.SubItems(3) = LoteMInimo
lst.SubItems(4) = TMOvimento + LoteMInimo
rs.MoveNext
Wend




DOUGLASGARCIA 08/12/2011 07:50:42
#390825
agora não deu erro o listviem abre mas tem outro probleminha

os dados na tabela do access esta assim:

coditem descrição total_movimentos lote minimo
403 APLIQUE CABECEIRA 890X145X3 AZUL/ROSA 5000 20
353 APLIQUE CABECEIRA 890X145X3 AZUL/ROSA TEXTURA 10 20
354 APLIQUE CABECEIRA 890X145X3 LILAZ TEXTURA 20 20
352 APLIQUE CABECEIRA 890X145X3LILAZ/BRANCO 30 20
442 BARRA BERÇO 1300X42X20 CRU 23 20
355 BARRA CAMA 1830X150X20 BRANCA 34 20
5001 BARRA CAMA 1830X150X20 TEKA 10 20
333 CABECEIRA 850X680X15 BRANCA/LILAZ 10 20
1 CABECEIRA 1150X780X15 BR/MDF R203 20

no formulario, no listviem aparece assim:

coditem descrição total_movimentos lote minimo total
403 APLIQUE CABECEIRA 890X145X3 AZUL/ROSA -1 20 19
353 APLIQUE CABECEIRA 890X145X3 AZUL/ROSA TEXTURA -1 20 19
354 APLIQUE CABECEIRA 890X145X3 LILAZ TEXTURA -1 20 19
352 APLIQUE CABECEIRA 890X145X3LILAZ/BRANCO -1 20 19
442 BARRA BERÇO 1300X42X20 CRU -1 20 19
355 BARRA CAMA 1830X150X20 BRANCA -1 20 19
5001 BARRA CAMA 1830X150X20 TEKA -1 20 19
333 CABECEIRA 850X680X15 BRANCA/LILAZ -1 20 19
1 CABECEIRA 1150X780X15 BR/MDF R203 0 20 20


desculpe o encomodo


mas o que pode ser?
CHARLESTON10 10/12/2011 11:08:02
#391042
creio que agora vai funcionar beleza



Dim TMOvimento As Currency
Dim LoteMInimo As Currency

Lista.ListItems.Clear

If rs.RecordCount = 0 Then Exit Sub

While Not rs.EOF

[ô]-> tratamento de erro
If rs([Ô]TOTAL_MOVIMENTOS[Ô]) = Not Null or rs([Ô]TOTAL_MOVIMENTOS[Ô]) <> [Ô][Ô] Then
TMOvimento = rs([Ô]TOTAL_MOVIMENTOS[Ô])
Else
TMOvimento = 0
End If


[ô]-> tratamento de erro
If rs([Ô]lote_minimo[Ô]) = Not Null or rs([Ô]lote_minimo[Ô]) <> [Ô][Ô]Then
LoteMInimo = rs([Ô]lote_minimo[Ô])
Else
LoteMInimo = 0
End If

Set lst = Lista.ListItems.Add(, , rs(0))
lst.SubItems(1) = rs([Ô]DescriÇÃO[Ô])
lst.SubItems(2) = TMOvimento
lst.SubItems(3) = LoteMInimo
lst.SubItems(4) = TMOvimento + LoteMInimo
rs.MoveNext
Wend

End Sub
DOUGLASGARCIA 10/12/2011 17:50:45
#391052
beleza funcionou

muito obrigado

mas tenho mais uma duvida, como fazer pra aredondar um numero na listviem

por exemplo

1,4 deixar 1
1,6 deixar 2

como fazer?
CHARLESTON10 11/12/2011 13:04:30
#391078
Dim TMOvimento  As Currency
Dim LoteMInimo As Currency


Currency siginifica valor Real com decimais
Integer é valor Inteiro sem decimais.

Caso você tiver um valor [Ô]1,5; 1,6; 1,7; 1,8; 1,9[Ô] ele vai arrendondar para 2, menor que isso vai para [Ô]1[Ô]

Só publicar as variaveis como Inteiro

Dim TMOvimento  As Integer
Dim LoteMInimo As Integer


DOUGLASGARCIA 11/12/2011 20:35:48
#391095
ok

e para mostrar no listviem apenas os valores na coluna 4 maiores que 0?
FEDERHEN 12/12/2011 08:08:13
#391112
Resposta escolhida
Dim TMOvimento As Currency
Dim LoteMInimo As Currency

Lista.ListItems.Clear

If rs.RecordCount = 0 Then Exit Sub

While Not rs.EOF

[ô]-> tratamento de erro
If rs([Ô]TOTAL_MOVIMENTOS[Ô]) = Not Null or rs([Ô]TOTAL_MOVIMENTOS[Ô]) <> [Ô][Ô] Then
TMOvimento = rs([Ô]TOTAL_MOVIMENTOS[Ô])
Else
TMOvimento = 0
End If


[ô]-> tratamento de erro
If rs([Ô]lote_minimo[Ô]) = Not Null or rs([Ô]lote_minimo[Ô]) <> [Ô][Ô]Then
LoteMInimo = rs([Ô]lote_minimo[Ô])
Else
LoteMInimo = 0
End If
[txt-color=#e80000] IF (TMOvimento + LoteMInimo) > 0 THEN[/txt-color]
Set lst = Lista.ListItems.Add(, , rs(0))
lst.SubItems(1) = rs([Ô]DescriÇÃO[Ô])
lst.SubItems(2) = TMOvimento
lst.SubItems(3) = LoteMInimo
lst.SubItems(4) = TMOvimento + LoteMInimo
[txt-color=#e80000]ENDIF[/txt-color]
rs.MoveNext
Wend

End Sub
CHARLESTON10 12/12/2011 14:12:51
#391142
Dim Resultado as Currency

Resultado = TMOvimento + LoteMInimo

IF Resultado > 0 THEN
Set lst = Lista.ListItems.Add(, , rs(0))
lst.SubItems(1) = rs([Ô]DescriÇÃO[Ô])
lst.SubItems(2) = TMOvimento
lst.SubItems(3) = LoteMInimo
lst.SubItems(4) = TMOvimento + LoteMInimo
END IF
Página 2 de 2 [20 registro(s)]
Tópico encerrado , respostas não são mais permitidas