fpetrucc 14/1/2014, 15:02
como não obtive nenhuma resposta que solucionasse meu problema fiz uma função que resolveu, segue abaixo:
obs.: aceito sugestões para melhorar a codificação.
Function MarcaRelatorios()
Set Db = CurrentDb
DesmarcaRelatórios = "UPDATE Pedidos SET Pedidos.Relatorio = False " _
& "WHERE (((Pedidos.Relatorio)=True));"
Db.Execute (DesmarcaRelatórios)
strSQL = "SELECT Pedidos.CódigoDoCliente, Pedidos.Cancelado, Pedidos.Faturado, Pedidos.Encerrado, Pedidos.Relatorio " _
& "FROM Pedidos " _
& "GROUP BY Pedidos.CódigoDoCliente, Pedidos.Cancelado, Pedidos.Faturado, Pedidos.Encerrado, Pedidos.Relatorio " _
& "HAVING (((Pedidos.Cancelado) = False) And ((Pedidos.Faturado) = True) And ((Pedidos.Encerrado) = True) And ((Pedidos.Relatorio) = False)) " _
& "ORDER BY Pedidos.CódigoDoCliente;"
Set rst = Db.OpenRecordset(strSQL)
With rst
.MoveLast
.MoveFirst
QuantReg = rst.RecordCount
Do While Not .EOF
Cliente = !CódigoDoCliente
Debug.Print Cliente
strSQL2 = "SELECT Pedidos.CódigoDoCliente, Pedidos.Cancelado, Pedidos.Faturado, Pedidos.Encerrado, Pedidos.Relatorio " _
& "FROM Pedidos " _
& "WHERE (((Pedidos.CódigoDoCliente) = '" & Cliente & "') And ((Pedidos.Cancelado) = False) And ((Pedidos.Faturado) = True) And ((Pedidos.Encerrado) = True) And ((Pedidos.Relatorio) = False)) " _
& "ORDER BY Pedidos.CódigoDoCliente;"
Set rst2 = Db.OpenRecordset(strSQL2)
With rst2
.MoveLast
.MoveFirst
QuantPed = rst2.RecordCount
Debug.Print QuantPed
If QuantPed > 3 Then
QuantPed = 3
End If
StrSQL1 = "SELECT Pedidos.CódigoDoPedido, Pedidos.DataDoPedido, Pedidos.CódigoDoCliente, Pedidos.Cancelado, Pedidos.Faturado, Pedidos.Encerrado, Pedidos.Relatorio " _
& "FROM Pedidos " _
& "WHERE (((Pedidos.CódigoDoCliente) = '" & Cliente & "') And ((Pedidos.Cancelado) = False) And ((Pedidos.Faturado) = True) And ((Pedidos.Encerrado) = True) And ((Pedidos.Relatorio) = False)) " _
& "ORDER BY Pedidos.DataDoPedido DESC;"
Set rst1 = Db.OpenRecordset(StrSQL1)
With rst1
.MoveLast
.MoveFirst
For Conta = 1 To QuantPed
QuantReg1 = rst1.RecordCount
Ped = !CódigoDoPedido
Debug.Print Ped
AtualizaPedido = "UPDATE Pedidos SET Relatorio = True WHERE CódigoDoPedido = '" & Ped & "';"
Db.Execute (AtualizaPedido)
.MoveNext
Next Conta
End With
End With
.MoveNext
Loop
End With
DoCmd.OpenReport "UltimasComprasPorRep", acViewPreview
End Function