MaximoAccess

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

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Criação de tabela com filtro por coluna e referencia de usuario

    Compartilhe

    bellaF
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 35
    Registrado : 05/04/2017

    [Resolvido]Criação de tabela com filtro por coluna e referencia de usuario

    Mensagem  bellaF em Sex 26 Maio 2017, 03:21

    Olá amigos do fórum! Smile
    Mais uma vez recorro à maestria de vocês. study study

    Estou terminando (finalmente cheers ) um sistema de controle de pedidos.
    No momento, estou tentando criar um relatório final de produtividade. Pra isso, preciso montar uma tabela que "sintetize" o que tratei dos meus pedidos.
    O meu problema, é que me pareceu impossível de montar essa tabela através de consultas, pois tenho diversos filtros.
    Vou tentar explicar da melhor maneira.
    Eu tenho um sistema que trata pedidos. Portanto, na tabela principal do meu BD, eu tenho um número de pedido e na mesma linha, todas as etapas para o seu tratamento, que tem uma data e um usuário que realizou a etapa.
    Minha necessidade é criar uma tabela em que as linhas sejam os nomes dos usuários, e cada coluna uma etapa. E para preencher essa tabela, o número de pedidos que cada usuário tratou em cada etapa, por um filtro de data.
    E é aí que está o problema. Eu quero as datas apenas do filtro. Por exemplo, meu filtro quer me dar a produtividade dos dias 10/05 a 15/05. Se o usuário "admin" recebeu o pedido numero "12345" no dia 01/05, não deve entrar na contagem de recebimento pelo usuário "admin", mas como foi analisado dia 11/05 pelo usuário "fulano", deve ser considerado na contagem de pedidos analisados pelo usuário "fulano".
    A tabela deveria ficaria assim, mais ou menos:

    Data: 10/05 a 15/05 [filtro]

              |   Recebim.  |    Análise  |    etc
    Fulano |        3        |       123    |
    Admin |       27        |       90     |
    João    |       0         |      456     |
    Maria  |        45       |       14     |
    José    |      1120     |         0     |

    Em anexo, envio um modelo da tabela base de onde essas informações são extraídas.
    Minha ideia seria colocar um botão no menu que ao clicar, criasse essa tabela "temporária" e a abrisse, de acordo com as datas nas caixas DataInicial e DataFinal. E depois de fechada essa tabela, zere. Portanto, cada vez que alterar o filtro e clicar no botão, ela se altere sozinha.
    Como não consegui montar essa consulta, imagino que um VBA seja a solução. Porém não sei muito bem como fazer isso. O que imagino é uma fórmula condicional para cada coluna, que se essa coluna estiver com a data entre o filtro, conta +1 pedido, caso contrário, não conta, além de identificar essa contagem por usuário.

    Não sei se me fiz muito clara, ou se é uma tarefa possível. confused
    Se alguém puder me dar um "insight" já é de grande ajuda. Embarassed
    Obrigada desde já, a todos.
    Abraços!
    Anexos
    tbl_inbound.xlsx
    Você não tem permissão para fazer download dos arquivos anexados.
    (12 Kb) Baixado 3 vez(es)

    bellaF
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 35
    Registrado : 05/04/2017

    Re: [Resolvido]Criação de tabela com filtro por coluna e referencia de usuario

    Mensagem  bellaF em Sex 26 Maio 2017, 03:53

    Link para download do modelo de controle de pedidos, simplificado.
    Obrigada!

    [Você precisa estar registrado e conectado para ver este link.]

    bellaF
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 35
    Registrado : 05/04/2017

    Re: [Resolvido]Criação de tabela com filtro por coluna e referencia de usuario

    Mensagem  bellaF em Sex 26 Maio 2017, 16:33

    Olá novamente.
    Ainda precisando de ajuda, se alguém puder, hehehe.
    Estou tentando criar alguma coisa, mas está difícil Sad

    Minhas tentativas me levaram ao seguinte código (com vários erros), que não consigo resolver.
    Se estiver absurdamente errado, peço mil desculpas, sou bem novata no VBA confused
    Se alguém me dar uma luz, agradeço imensamente!
    Abs!

    Private Sub btProdut_Click()

    Dim RstOrigem As DAO.Recordset
    Dim RstDestino As DAO.Recordset
    Dim RstUsuarios As DAO.Recordset
    Dim strSSCC As String
    Dim hrInicio As Date

    Set RstOrigem = CurrentDb.OpenRecordset("SELECT * FROM tbl_inbound")
    Set RstDestino = CurrentDb.OpenRecordset("SELECT * FROM tbl_produt")
    Set RstUsuarios = CurrentDb.OpenRecordset("SELECT * FROM tbl_usuarios")

    Dim user As Integer
    Dim linha_atual As Integer
    Dim filtro As Integer
    Dim conta As Integer

    filtro = "Between #" & [Forms]![fml_principal_gestor]![DataInicial].Value & "# AND #" & [Forms]![fml_principal_gestor]![DataFinal].Value
    linha_atual = 2

    Do While Not RstOrigem.EOF
    user = DLookup("Usuários", "tbl_usuarios", "Usuários<>'" & "") 'identifica usuario no cadastro
    If DLookup("userRecebido", "tbl_inbound", "userRecebido='" & user & "'") Then 'encontra usuario no recebimento na tbl dos pedidos
    conta = DCount("userRecebido", "tbl_inbound", "DataRecebido='" & filtro & "'") 'conta resgistro desse usuario, quando a data está dentro do filtro
    End If
    RstDestino.AddNew
    RstDestino("Usuário") = user
    RstDestino("Recebidas") = conta
    RstDestino.Update
    If DLookup("userAnalise", "tbl_inbound", "userAnalise='" & user & "'") Then 'para mesmo usuario, econtra ele na analise na tbl de pedidos
    conta = DCount("userAnalise", "tbl_inbound", "DataAnalise='" & filtro & "'") ' 'conta resgistro desse usuario, quando a data está dentro do filtro
    End If
    RstDestino.AddNew
    RstDestino("Analisadas") = conta WHERE Usuário = user
    RstDestino.Update
    RstOrigem.MoveNext

    Loop
    RstOrigem.Close: Set RstOrigem = Nothing
    RstDestino.Close: Set RstDestino = Nothing
    RstUsuarios.Close: Set RstUsuarios = Nothing

    DoCmd.OpenTable "tbl_produt", acViewPreview

    End Sub
    avatar
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 9550
    Registrado : 04/11/2009

    Re: [Resolvido]Criação de tabela com filtro por coluna e referencia de usuario

    Mensagem  JPaulo em Sex 26 Maio 2017, 17:03

    Olá, não testei por obviamente ser dificil de reproduzir todas as suas tabelas.

    Alguns erros que saltam á vista, que grifei a vermelho;

    Dim filtro As Integer
    Dim filtro As Date


    filtro = "Between #" & [Forms]![fml_principal_gestor]![DataInicial].Value & "# AND #" & [Forms]![fml_principal_gestor]![DataFinal].Value

    linha_atual = 2

    user = DLookup("Usuários", "tbl_usuarios", "Usuários<>'" & "") 'identifica usuario no cadastro

    conta = DCount("userAnalise", "tbl_inbound", "DataAnalise Between " & filtro) ' 'conta resgistro desse usuario, quando a data está dentro do filtro

    RstDestino("Analisadas") = conta WHERE Usuário = user


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver este link.]

    Sucesso e Bons Estudos
    Success and Good Studies

    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]

    bellaF
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 35
    Registrado : 05/04/2017

    Re: [Resolvido]Criação de tabela com filtro por coluna e referencia de usuario

    Mensagem  bellaF em Sex 26 Maio 2017, 18:06

    Olá JPaulo, obrigada pelo retorno!

    Corrigi os pontos que você apontou, mas ainda não está rodando. Está apontando erro na linha que define o filtro.
    Tentei tirar "#", colocar também no fim, com & e sem, mas não roda nenhum Sad
    Ficou assim:

    Private Sub btProdut_Click()

    Dim RstOrigem As DAO.Recordset
    Dim RstDestino As DAO.Recordset
    Dim RstUsuarios As DAO.Recordset
    Dim strSSCC As String
    Dim hrInicio As Date

       Set RstOrigem = CurrentDb.OpenRecordset("SELECT * FROM tbl_inbound")
       Set RstDestino = CurrentDb.OpenRecordset("SELECT * FROM tbl_produt")
       Set RstUsuarios = CurrentDb.OpenRecordset("SELECT * FROM tbl_usuarios")

    Dim user As Integer
    Dim linha_atual As Integer
    Dim filtro As Date
    Dim conta As Integer

    filtro = "#" & [Forms]![fml_principal_gestor]![DataInicial] & "# AND #" & [Forms]![fml_principal_gestor]![DataFinal]

    Do While Not RstOrigem.EOF
    user = DLookup("Usuários", "tbl_usuarios", "Usuários<>")
     If DLookup("userRecebido", "tbl_inbound", "userRecebido='" & user & "'") Then
         conta = DCount("userRecebido", "tbl_inbound", "DataRecebido Between " & filtro)

     End If
        RstDestino.AddNew
        RstDestino("Usuário") = user
        RstDestino("Recebidas") = conta
        RstDestino.Update
     If DLookup("userAnalise", "tbl_inbound", "userAnalise='" & user & "'") Then 'para mesmo usuario, econtra ele na analise na tbl de pedidos
         conta = DCount("userAnalise", "tbl_inbound", "DataAnalise='" & filtro & "'") 'conta resgistro desse usuario, quando a data está dentro do filtro
    End If
       RstDestino.AddNew
       RstDestino("Analisadas") = conta
       RstDestino.Update
       RstOrigem.MoveNext

     Loop
     RstOrigem.Close: Set RstOrigem = Nothing
     RstDestino.Close: Set RstDestino = Nothing
     RstUsuarios.Close: Set RstUsuarios = Nothing

    DoCmd.OpenTable "tbl_produt", acViewPreview

    End Sub

    bellaF
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 35
    Registrado : 05/04/2017

    Re: [Resolvido]Criação de tabela com filtro por coluna e referencia de usuario

    Mensagem  bellaF em Sex 26 Maio 2017, 18:19

    Consegui resolver a questão filtro Smile Smile Ficou assim:

    filtro = [Forms]![fml_principal_gestor]![DataInicial] And [Forms]![fml_principal_gestor]![DataFinal]

    Porém agora o código da erro na linha de identificação do usuário
    user = DLookup("Usuários", "tbl_usuarios", "Usuários<>")

    Também tentei corrigir de diversas maneiras, mas ainda não foi :/
    Obrigada pela ajuda!
    avatar
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 9550
    Registrado : 04/11/2009

    Re: [Resolvido]Criação de tabela com filtro por coluna e referencia de usuario

    Mensagem  JPaulo em Seg 29 Maio 2017, 13:44

    Certo que dá erro,

    user = DLookup("Usuários", "tbl_usuarios", "Usuários<>")

    Usuários<> de quê ?

    Tem de concluír o criterio.


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver este link.]

    Sucesso e Bons Estudos
    Success and Good Studies

    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]

    bellaF
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 35
    Registrado : 05/04/2017

    Re: [Resolvido]Criação de tabela com filtro por coluna e referencia de usuario

    Mensagem  bellaF em Seg 29 Maio 2017, 13:49

    Olá JPaulo!

    O critério que eu queria era que o Usuário fosse diferente de vazio, ou seja, que para cada usuário registrado na tabela, ele fizesse a contagem de pedidos, e parasse quando a tabela termina.
    É desnecessária essa informação?
    Não consigo entender como fazer esse código funcionar Sad

    Obrigada pela ajuda!
    avatar
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 9550
    Registrado : 04/11/2009

    Re: [Resolvido]Criação de tabela com filtro por coluna e referencia de usuario

    Mensagem  JPaulo em Seg 29 Maio 2017, 14:07

    Você está a usar DLookup`s desnecessários;

    Repare que os DLookups são á tbl_inbound e o Recordset já está aberto a essa tabela, então terá somente de aproveitar a informação;



    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver este link.]

    Sucesso e Bons Estudos
    Success and Good Studies

    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    avatar
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 9550
    Registrado : 04/11/2009

    Re: [Resolvido]Criação de tabela com filtro por coluna e referencia de usuario

    Mensagem  JPaulo em Seg 29 Maio 2017, 14:29

    É qualquer coisa assim, não testei nada ok ?

    Código:
    Dim conta1%
    Dim conta2%
    Dim userX$
    Dim userY$

    If RstOrigem.RecordCount = 0 Then Exit Sub

    RstOrigem.MoveFirst

    Do While Not RstOrigem.EOF

    userX = RstOrigem("userRecebido")
    userY = RstOrigem("userAnalise")

    conta1 = DCount("userRecebido", "tbl_inbound", "DataAnalise Between [Forms]![fml_principal_gestor]![DataInicial] And [Forms]![fml_principal_gestor]![DataFinal] AND DataAnalise>0 AND userRecebido='" & userX & "'")
    conta2 = DCount("userAnalise", "tbl_inbound", "DataAnalise Between [Forms]![fml_principal_gestor]![DataInicial] And [Forms]![fml_principal_gestor]![DataFinal] AND DataAnalise>0 AND userAnalise='" & userY & "'")

    RstDestino.AddNew
    RstDestino("Usuário") = RstOrigem("userRecebido")
    RstDestino("Recebidas") = conta1
    RstDestino("Analisadas") = conta2
    RstDestino.Update

    RstOrigem.MoveNext


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver este link.]

    Sucesso e Bons Estudos
    Success and Good Studies

    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]

    bellaF
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 35
    Registrado : 05/04/2017

    Re: [Resolvido]Criação de tabela com filtro por coluna e referencia de usuario

    Mensagem  bellaF em Seg 29 Maio 2017, 15:23

    Obrigada JPaulo,
    É realmente bem mais simples do que eu havia imaginado.
    Agradeço bastante a ajuda.
    No entanto não está dando certo, e pretendo desistir dessa ideia mesmo.
    De qualquer maneira, obrigada! Smile

      Data/hora atual: Sab 23 Set 2017, 06:47