Ola pessoal, obtive junto ao nosso colega CRIQUIO, ajuda para construir o seguinte codigo:
Dim NomeFuncionario As String, DataInicio As Date, HorasNecessarias As Long, Datafinal As Date
NomeFuncionario = Me![cmbRecursoAnalista].Column(0)
DataInicio = Me![txtDataInicialAnalista]
HorasNecessarias = Me![txtHorasAnalista]
Dim rst As Recordset
Dim lngSaldoAcumulado As Long, lngHorasDisponiveis As Long
lngSaldoAcumulado = HorasNecessarias
Set rst = CurrentDb.OpenRecordset("select Sum([HPlanejada]) from tblPlanejaHoras where [Matricula] = '" & NomeFuncionario & "' and [DtDisponivel] >= #" & DataInicio & "#")
If rst(0).Value >= HorasNecessarias Then
Set rst = CurrentDb.OpenRecordset("select [DtDisponivel], [HPlanejada] from tblPlanejaHoras where [Matricula] = '" & NomeFuncionario & "' and [DtDisponivel] >= #" & DataInicio & "#")
Do While Not rst.EOF
If lngSaldoAcumulado > rst("HPlanejada").Value Then
lngSaldoAcumulado = lngSaldoAcumulado - rst("HPlanejada").Value
lngHorasDisponiveis = 0
Else
lngHorasDisponiveis = rst("HPlanejada").Value - lngSaldoAcumulado
lngSaldoAcumulado = 0
End If
CurrentDb.Execute ("Update tblPlanejaHoras Set [HPlanejada] = " & lngHorasDisponiveis & " where [DtDisponivel] =#" & rst("DtDisponivel").Value & "# and [Matricula] = '" & NomeFuncionario & "'")
Datafinal = rst("DtDisponivel").Value
If lngSaldoAcumulado = 0 Then Exit Do
rst.MoveNext
Loop
rst.Close
Set rst = Nothing
Este codigo busca horas disponiveis na tblPlanejaHoras, considerando a matricula do funcionarioe a data inicial incluida no formulario, se nao houver hora disponivel na data inicial do incluida no formulario, entao o codigo busca a proxima data valida, que possua horas disponiveis e efetua um credito na linha da tabela tblPlanejaHoras, so que esta acontecendo o seguinte:
1 - As horas utilizadas nao estao sendo atualizadas/debitadas da tblPlanejaHoras;
2 - Eu preciso incluir uma msgbox (tipo yes or no), que me mostre todas as alteracoes que a tblPlanejaHoras ira sofrer, antes que as alteracoes ocorram;
3 - A cada passo, relativo a data e hora a ser debitada, eu preciso incluir estes mesmos valores em outra tabela, como faço ?
Ficarei imensamente agradecia......bjs
Juliana
Dim NomeFuncionario As String, DataInicio As Date, HorasNecessarias As Long, Datafinal As Date
NomeFuncionario = Me![cmbRecursoAnalista].Column(0)
DataInicio = Me![txtDataInicialAnalista]
HorasNecessarias = Me![txtHorasAnalista]
Dim rst As Recordset
Dim lngSaldoAcumulado As Long, lngHorasDisponiveis As Long
lngSaldoAcumulado = HorasNecessarias
Set rst = CurrentDb.OpenRecordset("select Sum([HPlanejada]) from tblPlanejaHoras where [Matricula] = '" & NomeFuncionario & "' and [DtDisponivel] >= #" & DataInicio & "#")
If rst(0).Value >= HorasNecessarias Then
Set rst = CurrentDb.OpenRecordset("select [DtDisponivel], [HPlanejada] from tblPlanejaHoras where [Matricula] = '" & NomeFuncionario & "' and [DtDisponivel] >= #" & DataInicio & "#")
Do While Not rst.EOF
If lngSaldoAcumulado > rst("HPlanejada").Value Then
lngSaldoAcumulado = lngSaldoAcumulado - rst("HPlanejada").Value
lngHorasDisponiveis = 0
Else
lngHorasDisponiveis = rst("HPlanejada").Value - lngSaldoAcumulado
lngSaldoAcumulado = 0
End If
CurrentDb.Execute ("Update tblPlanejaHoras Set [HPlanejada] = " & lngHorasDisponiveis & " where [DtDisponivel] =#" & rst("DtDisponivel").Value & "# and [Matricula] = '" & NomeFuncionario & "'")
Datafinal = rst("DtDisponivel").Value
If lngSaldoAcumulado = 0 Then Exit Do
rst.MoveNext
Loop
rst.Close
Set rst = Nothing
Este codigo busca horas disponiveis na tblPlanejaHoras, considerando a matricula do funcionarioe a data inicial incluida no formulario, se nao houver hora disponivel na data inicial do incluida no formulario, entao o codigo busca a proxima data valida, que possua horas disponiveis e efetua um credito na linha da tabela tblPlanejaHoras, so que esta acontecendo o seguinte:
1 - As horas utilizadas nao estao sendo atualizadas/debitadas da tblPlanejaHoras;
2 - Eu preciso incluir uma msgbox (tipo yes or no), que me mostre todas as alteracoes que a tblPlanejaHoras ira sofrer, antes que as alteracoes ocorram;
3 - A cada passo, relativo a data e hora a ser debitada, eu preciso incluir estes mesmos valores em outra tabela, como faço ?
Ficarei imensamente agradecia......bjs
Juliana