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


2 participantes

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

    avatar
    bellaF
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  bellaF 26/5/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
    [Resolvido]Criação de tabela com filtro por coluna e referencia de usuario Attachmenttbl_inbound.xlsx
    Você não tem permissão para fazer download dos arquivos anexados.
    (12 Kb) Baixado 3 vez(es)
    avatar
    bellaF
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  bellaF 26/5/2017, 03:53

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

    https://www.dropbox.com/s/qn2zsmv6auas9i0/ControlePedidos.zip?dl=0
    avatar
    bellaF
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  bellaF 26/5/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
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  JPaulo 26/5/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.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Criação de tabela com filtro por coluna e referencia de usuario Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Criação de tabela com filtro por coluna e referencia de usuario Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Criação de tabela com filtro por coluna e referencia de usuario Folder_announce_new Instruções SQL como utilizar...
    avatar
    bellaF
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  bellaF 26/5/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
    avatar
    bellaF
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  bellaF 26/5/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!
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  JPaulo 29/5/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.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Criação de tabela com filtro por coluna e referencia de usuario Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Criação de tabela com filtro por coluna e referencia de usuario Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Criação de tabela com filtro por coluna e referencia de usuario Folder_announce_new Instruções SQL como utilizar...
    avatar
    bellaF
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  bellaF 29/5/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!
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  JPaulo 29/5/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.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Criação de tabela com filtro por coluna e referencia de usuario Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Criação de tabela com filtro por coluna e referencia de usuario Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Criação de tabela com filtro por coluna e referencia de usuario Folder_announce_new Instruções SQL como utilizar...
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  JPaulo 29/5/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.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Criação de tabela com filtro por coluna e referencia de usuario Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Criação de tabela com filtro por coluna e referencia de usuario Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Criação de tabela com filtro por coluna e referencia de usuario Folder_announce_new Instruções SQL como utilizar...
    avatar
    bellaF
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  bellaF 29/5/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

    Conteúdo patrocinado


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

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 29/3/2024, 08:05