SOMA EM FORMULARIO
[ô]- aff não era pra dar erro
tente isso novamente ^^
[ô]-> tratamento de erro
Se não der certo;
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
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]
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]
Corrige isso tambem.
ao inves de [Ô] If rs([Ô]lote_minimo[Ô]) = Empty Then[Ô] usa o mesmo do de cima..
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.
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
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?
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?
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
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?
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?
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
ok
e para mostrar no listviem apenas os valores na coluna 4 maiores que 0?
e para mostrar no listviem apenas os valores na coluna 4 maiores que 0?
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
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
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
Tópico encerrado , respostas não são mais permitidas