No procedimento abaixo, estou tendo um problema na parte marcada em negrito. O cálculo da variável dblHrDSR está tendo atraso.
Após atualizar o valor, através do cálculo Me.Valor = curVrHora * (Me.RefValor * Me.RefValor2 / 100), dblHrDSR faz uma busca na base de dados e sempre retorna o valor anterior à atualização do campo RefValor.
Private Sub RefValor_AfterUpdate()
intTHoras = Nz(DLookup("RefValor2", "qryLancamentos", "CodFolha1 =" & Me.CodFolha1), 0)
intTDias = Nz(DLookup("RefValor", "qryLancamentos", "CodFolha1 =" & Me.CodFolha1), 0)
curVrHora = Me.SomBCGeral / intTHoras
dblHrDSR = Nz(DSum("RefValor * RefValor2/100", "qryLancamentos", "CodFolha1 =" & Me.CodFolha1 & "AND CodEvento1 = 16"), 0) _
+ Nz(DSum("RefValor * (RefValor2/100+1)", "qryLancamentos", "CodFolha1 =" & Me.CodFolha1 & "AND CodEvento1 = 17"), 0)
Set frm = Me
Set rs = Me.RecordsetClone
Select Case Me.CodEvento1
Case Is = 16
Me.Valor = curVrHora * (Me.RefValor * Me.RefValor2 / 100)
Me.Refresh
rs.FindFirst "CodEvento1 = 19"
If rs.NoMatch Then
DoCmd.GoToRecord , , acNewRec
Me.CodEvento1 = 19
Me.RefValor = dblHrDSR
Else
frm.Bookmark = rs.Bookmark
Me.RefValor = dblHrDSR
End If
End Select
End Sub
Após atualizar o valor, através do cálculo Me.Valor = curVrHora * (Me.RefValor * Me.RefValor2 / 100), dblHrDSR faz uma busca na base de dados e sempre retorna o valor anterior à atualização do campo RefValor.
Private Sub RefValor_AfterUpdate()
intTHoras = Nz(DLookup("RefValor2", "qryLancamentos", "CodFolha1 =" & Me.CodFolha1), 0)
intTDias = Nz(DLookup("RefValor", "qryLancamentos", "CodFolha1 =" & Me.CodFolha1), 0)
curVrHora = Me.SomBCGeral / intTHoras
dblHrDSR = Nz(DSum("RefValor * RefValor2/100", "qryLancamentos", "CodFolha1 =" & Me.CodFolha1 & "AND CodEvento1 = 16"), 0) _
+ Nz(DSum("RefValor * (RefValor2/100+1)", "qryLancamentos", "CodFolha1 =" & Me.CodFolha1 & "AND CodEvento1 = 17"), 0)
Set frm = Me
Set rs = Me.RecordsetClone
Select Case Me.CodEvento1
Case Is = 16
Me.Valor = curVrHora * (Me.RefValor * Me.RefValor2 / 100)
Me.Refresh
rs.FindFirst "CodEvento1 = 19"
If rs.NoMatch Then
DoCmd.GoToRecord , , acNewRec
Me.CodEvento1 = 19
Me.RefValor = dblHrDSR
Else
frm.Bookmark = rs.Bookmark
Me.RefValor = dblHrDSR
End If
End Select
End Sub