Caros, boa noite...
O caso é o seguinte, imagine que tenho um cadastro de composição de preços, de dentro desta composição, posso ter insumos e outras composições para compor um preço, e travei na seguinte questão.
Se a composição tiver somente insumo, beleza, o cálculo é facil, mas se esta composição tiver outras composições é que são elas.
Ex:
Composição: A - custo: 10,00
Itens:
insumo 1 custo: 2,50
insumo 2 custo: 2,50
insumo 3 custo: 5,00
Composição: B - custo 20,00
Itens:
insumo 1 custo: 2,50
insumo 2 custo: 2,50
insumo 3 custo: 5,00
composição A custo: 10,00
Função para avaliar:
Function CalcComp()
Set cn2 = Application.CurrentProject.Connection
Set rs2 = New ADODB.Recordset
With rs2
Set rs2.ActiveConnection = cn2
rs2.Source = "SELECT COMPOSICAOITENS.ComposicaoID, COMPOSICAOITENS.CompoInsumo, COMPOSICAOITENS.Qtde, COMPOSICAOITENS.VrUnit, COMPOSICAOITENS.Tot, COMPOSICAOITENS.compins, COMPOSICAOITENS.OId " & _
"FROM COMPOSICAOITENS WHERE (((COMPOSICAOITENS.ComposicaoID)=" & ID & "));"
rs2.LockType = adLockOptimistic
rs2.CursorType = adOpenKeyset
rs2.Open
End With
If rs2.EOF Then
MsgBox "Nenhum insumo ou composição auxiliar cadastrado para esta composição...", vbCritical, "AVISO"
Else
Do While Not rs2.EOF
If rs2.Fields(5) = 1 Then ' 1 composição
MsgBox "Pulou composição..."
Else ' 2 insumo
rs2.Fields(3) = DLookup("[VALOR]", "INSUMOSPR", "[IDINSUMO]=" & Str(rs2.Fields(1)) & " AND [PRECOATIVO]=True")
rs2.Fields(4) = rs2.Fields(2) * DLookup("[VALOR]", "INSUMOSPR", "[IDINSUMO]=" & Str(rs2.Fields(1)) & " AND [PRECOATIVO]=True")
rs2.Update
End If
rs2.MoveNext
Loop
End If
Set rs2 = Nothing
Set cn2 = Nothing
Me.COMPOSICAOITENS_subformulário.Requery
End Function
Se alguém tiver alguma idéia, desde já eu agradeço...
William - TiUila
O caso é o seguinte, imagine que tenho um cadastro de composição de preços, de dentro desta composição, posso ter insumos e outras composições para compor um preço, e travei na seguinte questão.
Se a composição tiver somente insumo, beleza, o cálculo é facil, mas se esta composição tiver outras composições é que são elas.
Ex:
Composição: A - custo: 10,00
Itens:
insumo 1 custo: 2,50
insumo 2 custo: 2,50
insumo 3 custo: 5,00
Composição: B - custo 20,00
Itens:
insumo 1 custo: 2,50
insumo 2 custo: 2,50
insumo 3 custo: 5,00
composição A custo: 10,00
Função para avaliar:
Function CalcComp()
Set cn2 = Application.CurrentProject.Connection
Set rs2 = New ADODB.Recordset
With rs2
Set rs2.ActiveConnection = cn2
rs2.Source = "SELECT COMPOSICAOITENS.ComposicaoID, COMPOSICAOITENS.CompoInsumo, COMPOSICAOITENS.Qtde, COMPOSICAOITENS.VrUnit, COMPOSICAOITENS.Tot, COMPOSICAOITENS.compins, COMPOSICAOITENS.OId " & _
"FROM COMPOSICAOITENS WHERE (((COMPOSICAOITENS.ComposicaoID)=" & ID & "));"
rs2.LockType = adLockOptimistic
rs2.CursorType = adOpenKeyset
rs2.Open
End With
If rs2.EOF Then
MsgBox "Nenhum insumo ou composição auxiliar cadastrado para esta composição...", vbCritical, "AVISO"
Else
Do While Not rs2.EOF
If rs2.Fields(5) = 1 Then ' 1 composição
MsgBox "Pulou composição..."
Else ' 2 insumo
rs2.Fields(3) = DLookup("[VALOR]", "INSUMOSPR", "[IDINSUMO]=" & Str(rs2.Fields(1)) & " AND [PRECOATIVO]=True")
rs2.Fields(4) = rs2.Fields(2) * DLookup("[VALOR]", "INSUMOSPR", "[IDINSUMO]=" & Str(rs2.Fields(1)) & " AND [PRECOATIVO]=True")
rs2.Update
End If
rs2.MoveNext
Loop
End If
Set rs2 = Nothing
Set cn2 = Nothing
Me.COMPOSICAOITENS_subformulário.Requery
End Function
Se alguém tiver alguma idéia, desde já eu agradeço...
William - TiUila