MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


    [Resolvido]Listar as três últimas compras de todos os clientes

    avatar
    fpetrucc
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 6
    Registrado : 06/12/2012

    [Resolvido]Listar as três últimas compras de todos os clientes Empty [Resolvido]Listar as três últimas compras de todos os clientes

    Mensagem  fpetrucc 7/1/2014, 13:49

    Bom dia, como faço para listar as três últimas compras de todos os meus clientes?

    att.:

    Flávio Petrúcio
    avatar
    Convidado
    Convidado


    [Resolvido]Listar as três últimas compras de todos os clientes Empty Re: [Resolvido]Listar as três últimas compras de todos os clientes

    Mensagem  Convidado 7/1/2014, 14:12

    Uma consulta com o Select TOP

    Cumprimentos.
    avatar
    fpetrucc
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 6
    Registrado : 06/12/2012

    [Resolvido]Listar as três últimas compras de todos os clientes Empty Re: [Resolvido]Listar as três últimas compras de todos os clientes

    Mensagem  fpetrucc 7/1/2014, 14:31

    Compreendo HARYSOHN, mas ele só irá me listar as três últimas compras de qualquer cliente e não é isso que quero, preciso que me liste as três últimas compras de todos os clientes.
    EX.:

    01/01/2014 - João Menezes
    02/01/2014 - João Menezes
    03/01/2014 - João Menezes
    01/01/2014 - Maria Gorete
    03/01/2014 - Maria Gorete
    06/01/2014 - Maria Gorete
    01/01/2014 - José Santos
    05/01/2014 - José Santos
    06/01/2014 - José Santos
    ...

    att.:

    Flávio Petrúcio
    avatar
    fpetrucc
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 6
    Registrado : 06/12/2012

    [Resolvido]Listar as três últimas compras de todos os clientes Empty Re: [Resolvido]Listar as três últimas compras de todos os clientes

    Mensagem  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
    avatar
    Convidado
    Convidado


    [Resolvido]Listar as três últimas compras de todos os clientes Empty Re: [Resolvido]Listar as três últimas compras de todos os clientes

    Mensagem  Convidado 14/1/2014, 17:26

    A meu ver o código está bem feito... Para ver se poderia ser melhorado teria que ter a tabela com alguns dados para que pudesse tentar algo aqui..

    Outra ideia seria uma tabela temporária, um recordset filtrado por cliente com a cláusula TOP e no loop alimentar a tabela temporária.. Utilizaria esta para os relatórios...

    é somente uma ideia... Agora deve-se observar a qual se encaixa melhor à sua necessidade.

    Cumprimentos.
    avatar
    fpetrucc
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 6
    Registrado : 06/12/2012

    [Resolvido]Listar as três últimas compras de todos os clientes Empty Re: [Resolvido]Listar as três últimas compras de todos os clientes

    Mensagem  fpetrucc 14/1/2014, 19:29

    Obrigado pelas sugestões
    HARYSOHN escreveu:
    e pelas respostas!!!
    avatar
    Convidado
    Convidado


    [Resolvido]Listar as três últimas compras de todos os clientes Empty Re: [Resolvido]Listar as três últimas compras de todos os clientes

    Mensagem  Convidado 14/1/2014, 21:03

    O Fórum agradece o Retorno.

    Conteúdo patrocinado


    [Resolvido]Listar as três últimas compras de todos os clientes Empty Re: [Resolvido]Listar as três últimas compras de todos os clientes

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 8/5/2024, 03:13