SOMA EM FORMULARIO
bom dia
to enfrentando o seguinte problema:
estou contruindo um sistema par controle de estoque no vb 6 com banco de dados em access e cheguei na parte em que presizo fazer calculos, tenho que fazer as seguintes somas nos dados abaixo:
codigo descrição nescessidade estoque lote saldo lotes total
50 porta 1700x295x15 marfim 100 50 40 -50 2 80
o calculo seria: nescessidade-estoque/lote +aredondamento
esse calculo tem que aparecer num formulario com msflexgrid ou listviem
fiz o calculo no proprio banco de dados mas tive que usar a formula NZ só que dai não aparece os dados no vb 6
qual seria a solução, tem como fazer o calculo no msflexgrid ou tirar este erro causado pela formula nz?
to enfrentando o seguinte problema:
estou contruindo um sistema par controle de estoque no vb 6 com banco de dados em access e cheguei na parte em que presizo fazer calculos, tenho que fazer as seguintes somas nos dados abaixo:
codigo descrição nescessidade estoque lote saldo lotes total
50 porta 1700x295x15 marfim 100 50 40 -50 2 80
o calculo seria: nescessidade-estoque/lote +aredondamento
esse calculo tem que aparecer num formulario com msflexgrid ou listviem
fiz o calculo no proprio banco de dados mas tive que usar a formula NZ só que dai não aparece os dados no vb 6
qual seria a solução, tem como fazer o calculo no msflexgrid ou tirar este erro causado pela formula nz?
Como você preenche o ListView ?
Uma solução interessante é no momento que você preencher o listview, você já faz essa calculo puxando em uma rotina;
Exemplo:
Ultiliza uma variavel Private ao formulario declarada no General
Ela vai servir para guardar o resultado do calculo.
[ô]-> Agora eu crio um método para fazer o cálculo
Okey - Até o calculo já foi feito
Agora iremos mostrar esse resultado numa lista
Uma outra solução é fazer o cálculo já no preenchimento da Lista
[ô]-> Recomendo fazer essa abaixo.
Espero ter ajudado
Uma solução interessante é no momento que você preencher o listview, você já faz essa calculo puxando em uma rotina;
Exemplo:
Ultiliza uma variavel Private ao formulario declarada no General
Ela vai servir para guardar o resultado do calculo.
Dim Resultado As Currency
[ô]-> Agora eu crio um método para fazer o cálculo
Private Sub Calcular()
[ô]Abre tabela
sSQL = [Ô]SELECT * FROM suaTabela WHERE = 50 [Ô]
Tabela.Open sSQL, Conexao, adOpenDynamic, adLockOptimistic
[ô]A variavel resultado recebe o valor do calculo de acordo com os campos da sua tabela
With Tabela
Resultado = (!nescessidade - !Estoque) / (!Lote + !Arrendondamento)
End with
[ô]Fecha tabela
Tabela.Close
End Sub
Okey - Até o calculo já foi feito
Agora iremos mostrar esse resultado numa lista
Private Sub Listar()
[ô]Chama método para calcular
Call Calcular
[ô]Listar no listview
With Tabela
Set lst = Lista.ListItems.Add(, , .Fields([Ô]Codigo[Ô]))
lst.SubItems(1) = .Fields([Ô]Descricao[Ô])
lst.SubItems(2) = .Fields([Ô]Necessidade[Ô])
lst.SubItems(3) = .Fields([Ô]Estoque[Ô])
lst.SubItems(4) = .Fields([Ô]Lote[Ô])
lst.SubItems(5) = .Fields([Ô]Saldo[Ô])
lst.SubItems(6) = .Fields([Ô]Lotes[Ô])
lst.SubItems(7) = .Fields([Ô]Total[Ô])
lst.SubItems(8) = Resultado [ô]<- Na coluna 9 da lista aparece o resultado do calculo
End With
End Sub
Uma outra solução é fazer o cálculo já no preenchimento da Lista
[ô]-> Recomendo fazer essa abaixo.
Private sub Listar()
[ô]Abre tabela
sSQL = [Ô]SELECT * FROM suaTabela[Ô]
Tabela.Open sSQL, Conexao, adOpenDynamic, adLockOptimistic
[ô]Função que lista todos os registros cadastrado na lista
With Tabela
Do While Not .EOF
[ô]Listar
Set lst = Lista.ListItems.Add(, , .Fields([Ô]Codigo[Ô]))
lst.SubItems(1) = .Fields([Ô]Descricao[Ô])
lst.SubItems(2) = .Fields([Ô]Necessidade[Ô])
lst.SubItems(3) = .Fields([Ô]Estoque[Ô])
lst.SubItems(4) = .Fields([Ô]Lote[Ô])
lst.SubItems(5) = .Fields([Ô]Saldo[Ô])
lst.SubItems(6) = .Fields([Ô]Lotes[Ô])
lst.SubItems(7) = .Fields([Ô]Total[Ô])
lst.SubItems(8) = (!nescessidade - !Estoque) / (!Lote + !Arrendondamento) [ô]<- Na coluna 9 da lista aparece o resultado do calculo
.MoveNext
Loop
End With
Tabela.Close
End Sub
Espero ter ajudado
fiz o seguinte codigo:
Private Sub Listar()
[ô]Abre tabela
cnSQL = [Ô]SELECT * FROM SALDO_GERAL[Ô]
nesc.Open cnSQL, roteiro, adOpenDynamic, adLockOptimistic
[ô]Função que lista todos os registros cadastrado na lista
With nesc
Do While Not .EOF
[ô]Listar
Set ListView1 = lista.ListItems.Add(, , .Fields([Ô]Coditem[Ô]))
ListView1.SubItems(1) = .Fields([Ô]Descricao[Ô])
ListView1.SubItems(2) = .Fields([Ô]situação[Ô])
ListView1.SubItems(3) = .Fields([Ô]TOTAL_MOVIMENTOS[Ô])
.MoveNext
Loop
End With
nesc.Close
End Sub
e deu o seguinte erro:
[Ô]method or data menber not foud[Ô]
Private Sub Listar()
[ô]Abre tabela
cnSQL = [Ô]SELECT * FROM SALDO_GERAL[Ô]
nesc.Open cnSQL, roteiro, adOpenDynamic, adLockOptimistic
[ô]Função que lista todos os registros cadastrado na lista
With nesc
Do While Not .EOF
[ô]Listar
Set ListView1 = lista.ListItems.Add(, , .Fields([Ô]Coditem[Ô]))
ListView1.SubItems(1) = .Fields([Ô]Descricao[Ô])
ListView1.SubItems(2) = .Fields([Ô]situação[Ô])
ListView1.SubItems(3) = .Fields([Ô]TOTAL_MOVIMENTOS[Ô])
.MoveNext
Loop
End With
nesc.Close
End Sub
e deu o seguinte erro:
[Ô]method or data menber not foud[Ô]
O membro método ou dados que você tentou acessar não foi encontrada.
Algum campo que você tentou lista, não existe ou foi escrito incorretamente.
Posta os campos da sua tabela, aki[ô] pra gente verificar e ajustar
Algum campo que você tentou lista, não existe ou foi escrito incorretamente.
Posta os campos da sua tabela, aki[ô] pra gente verificar e ajustar
modifiquei a forma de preencrer o listviem
ficou assim
Public Sub preenche_lista()
Lista.ListItems.Clear
If rs.RecordCount = 0 Then Exit Sub
While Not rs.EOF
Set lst = Lista.ListItems.Add(, , rs(0))
lst.SubItems(1) = rs([Ô]DescriÇÃO[Ô])
lst.SubItems(2) = rs([Ô]TOTAL_MOVIMENTOS[Ô])
lst.SubItems(3) = rs([Ô]lote_minimo[Ô])
lst.SubItems(4) = (!TOTAL_MOVIMENTOS + !lote_minimo)
rs.MoveNext
Wend
End Sub
esta aparecendo o seguinte erro:
[Ô]invalid or unqualified reference[Ô] no !TOTAL_MOVIMENTOS
ficou assim
Public Sub preenche_lista()
Lista.ListItems.Clear
If rs.RecordCount = 0 Then Exit Sub
While Not rs.EOF
Set lst = Lista.ListItems.Add(, , rs(0))
lst.SubItems(1) = rs([Ô]DescriÇÃO[Ô])
lst.SubItems(2) = rs([Ô]TOTAL_MOVIMENTOS[Ô])
lst.SubItems(3) = rs([Ô]lote_minimo[Ô])
lst.SubItems(4) = (!TOTAL_MOVIMENTOS + !lote_minimo)
rs.MoveNext
Wend
End Sub
esta aparecendo o seguinte erro:
[Ô]invalid or unqualified reference[Ô] no !TOTAL_MOVIMENTOS
Tente isso:
Public Sub preenche_lista()
Dim TMOvimento as Currency
Dim LoteMInimo as Currency
Lista.ListItems.Clear
If rs.RecordCount = 0 Then Exit Sub
While Not rs.EOF
TMOvimento = rs([Ô]TOTAL_MOVIMENTOS[Ô])
LoteMInimo = rs([Ô]lote_minimo[Ô])
Set lst = Lista.ListItems.Add(, , rs(0))
lst.SubItems(1) = rs([Ô]DescriÇÃO[Ô])
lst.SubItems(2) = rs([Ô]TOTAL_MOVIMENTOS[Ô])
lst.SubItems(3) = rs([Ô]lote_minimo[Ô])
lst.SubItems(4) = TMovimento - LoteMinimo
rs.MoveNext
Wend
End Sub
beleza funcionou
mas tem outro probleminha
nem todos os campos tem valor, o campo que esta nulo dá erro
como prencher o listviem no lugar de nulo com 0 ?
mas tem outro probleminha
nem todos os campos tem valor, o campo que esta nulo dá erro
como prencher o listviem no lugar de nulo com 0 ?
Faz um tratamento de erro usando IF.
Se um dos campos da tabela estiver vazio atribui o valor de [ô]0[ô] nas variáveis
Se um dos campos da tabela estiver vazio atribui o valor de [ô]0[ô] nas variáveis
Public Sub preenche_lista()
Dim TMOvimento as Currency
Dim LoteMInimo as Currency
Lista.ListItems.Clear
If rs.RecordCount = 0 Then Exit Sub
While Not rs.EOF
TMOvimento = rs([Ô]TOTAL_MOVIMENTOS[Ô])
LoteMInimo = rs([Ô]lote_minimo[Ô])
[ô]-> tratamento de erro
If TMOvimento = Empty Then
TMOvimento = 0
End If
[ô]-> tratamento de erro
If LoteMInimo = Empty Then
LoteMInimo = 0
End If
Set lst = Lista.ListItems.Add(, , rs(0))
lst.SubItems(1) = rs([Ô]DescriÇÃO[Ô])
lst.SubItems(2) = rs([Ô]TOTAL_MOVIMENTOS[Ô])
lst.SubItems(3) = rs([Ô]lote_minimo[Ô])
lst.SubItems(4) = TMovimento - LoteMinimo
rs.MoveNext
Wend
End Sub
deu erro aqui:
TMOvimento = rs([Ô]TOTAL_MOVIMENTOS[Ô])
invalid use of null
TMOvimento = rs([Ô]TOTAL_MOVIMENTOS[Ô])
invalid use of null
Teste isso...
Public Sub preenche_lista()
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[Ô]) = Empty Then
TMOvimento = 0
else
TMOvimento = rs([Ô]TOTAL_MOVIMENTOS[Ô])
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[Ô])
lst.SubItems(3) = rs([Ô]lote_minimo[Ô])
lst.SubItems(4) = TMovimento - LoteMinimo
rs.MoveNext
Wend
End Sub
ainda da erro aqui:
else
TMOvimento = rs([Ô]TOTAL_MOVIMENTOS[Ô])
End If
invalid use of null
else
TMOvimento = rs([Ô]TOTAL_MOVIMENTOS[Ô])
End If
invalid use of null
Tópico encerrado , respostas não são mais permitidas