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

    Filtrar dados por usuario/empresa depois do login

    avatar
    thiagonsilvaa
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 384
    Registrado : 12/01/2017

    Filtrar dados por usuario/empresa depois do login Empty Filtrar dados por usuario/empresa depois do login

    Mensagem  thiagonsilvaa 24/5/2021, 15:32

    Bom dia a todos !

    Deparei com uma situação em um projeto e estou com certas dificuldades em solucioná-la, assim recorro aos mestres.

    Elaborei um projeto simples de contas à pagar com a seguinte estrutura para lançamentos:

    ID     Formapgto  DataEmissao HistoricoouFornecedor Pagador ValorDoc DtVencimento Numerodoc

    A tabela de login é a seguinte:
    Filtrar dados por usuario/empresa depois do login Sem_tz13

    A situação é que, tem certos usuários que podem navegar por todo o sistema, visualizar todas as contas à pagar de todos as empresas.

    Alguns usuários precisam ver somente as contas à pagar da empresa em que estão cadastrados (creio utilizar a coluna "pagador" para poder filtrar), isso tanto em relatórios quanto em formulários.

    Como posso proceder com essa situação ?

    Aguardo ajuda dos mestres, e desde já agradeço !

    Obs: se necessário posto a estrutura do db.
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3417
    Registrado : 13/12/2016

    Filtrar dados por usuario/empresa depois do login Empty Re: Filtrar dados por usuario/empresa depois do login

    Mensagem  Alexandre Fim 24/5/2021, 17:29

    Olá Thiago,

    De modo geral, é necessário amarrar os dados da empresa conforme abaixo:

    - Caso não exista, necessário criar uma tabela de empresas com seus respectivos códigos (id_empresa)
    - Necessário incluir na tabela de usuário também o "id_empresa" a qual ele estará habilitado para visualizar os dados.
    - Necessário incluir na tabela de contas a pagar, o "id_empresa" em que a conta pertence.

    Não conheço a estrutura do teu sistema, mas quando o usuário logar no sistema, no código VBA é necessário criar uma variável global que recebe o "id_empresa" do usuário.
    Desta forma, vc consegue controlar todo o sistema através desta variável pois ela pode ser utilizada em todo o sistema, e usá-la como parametro de filtro nas consultas/formulários/relatórios e etc.

    Exemplo de variável global que deve estar em um módulo:

    Código:


    Dim vgEmpresa As Integer



    'Exemplo de código quando usuario logar:

    vgEmpresa = DLookup("id_empresa", "tbl_usuario", "CodUsuario = " & [CodigoDoUsuarionoLogin] & "")






    É isso !!!

    Espero ter ajudado

    []'s

    FIM


    .................................................................................
    Arrow  Marcar tópico como Resolvido: clique aqui
    Arrow  Postar anexos no fórum: clique aqui

    Filtrar dados por usuario/empresa depois do login Setinf11
    Sistemas e Tecnologia Ltda
    avatar
    thiagonsilvaa
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 384
    Registrado : 12/01/2017

    Filtrar dados por usuario/empresa depois do login Empty Re: Filtrar dados por usuario/empresa depois do login

    Mensagem  thiagonsilvaa 24/5/2021, 17:48

    Boa tarde Alexandre, tudo bem ?

    Primeiramente obrigado pelo retorno.

    Estava pensando em fazer desta maneira. Na verdade, o campo pagador da tabela de lançamentos é a empresa respectiva.

    Como ex:

    - Thiago posso visualizar os lançamentos de todos os pagadores (empresas)
    - João é da empresa A, portanto ele só pode visualizar os dados do pagador/empresa A.
    - Maria pode visualizar os dados de todas as empresas, assim como Thiago.

    Na hora que eu for vincular a empresa na tabela de usuários, eu poderia colocar por exemplo "todas empresas", e na hora de hora de gerar os relatórios e formulários? Eu desativaria este filtro ?
    Como faria isso ?

    Creio estar entendendo a linha de raciocínio.

    Agradeço !!!
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3417
    Registrado : 13/12/2016

    Filtrar dados por usuario/empresa depois do login Empty Re: Filtrar dados por usuario/empresa depois do login

    Mensagem  Alexandre Fim 24/5/2021, 18:13

    Thiago,



    Na hora que eu for vincular a empresa na tabela de usuários, eu poderia colocar por exemplo "todas empresas"....

    Não. Na tabela de usuários deve ter o id_empresa e, para o usuário que tem acesso à todas empresas, o id_empresa será 0 (zero).
    No código, quando a variável "vgEmpresa" assumir este valor, todos os objetos (consultas/formulários/relatórios) não deve usar como critério de seleção, mas se for <> 0, deve ser usado como critério, para que seja filtrado os dados conforme o id_empresa do usuário.

    []'s

    FIM


    .................................................................................
    Arrow  Marcar tópico como Resolvido: clique aqui
    Arrow  Postar anexos no fórum: clique aqui

    Filtrar dados por usuario/empresa depois do login Setinf11
    Sistemas e Tecnologia Ltda
    avatar
    thiagonsilvaa
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 384
    Registrado : 12/01/2017

    Filtrar dados por usuario/empresa depois do login Empty Re: Filtrar dados por usuario/empresa depois do login

    Mensagem  thiagonsilvaa 24/5/2021, 18:47

    Boa tarde, Alexandre !

    Pelo que entendi, então ficaria:

    If vgEmpresa = 0 then
    Cancela o filtro de todos os objetos
    Elseif vgEmpresa <> 0 then
    Filtra de acordo com o id da empresa
    End if.

    Eu teria que colocar em algum evento esse código ? Ou em algum outro lugar do access ?
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3417
    Registrado : 13/12/2016

    Filtrar dados por usuario/empresa depois do login Empty Re: Filtrar dados por usuario/empresa depois do login

    Mensagem  Alexandre Fim 24/5/2021, 19:15

    Thiago,



    If vgEmpresa = 0 then
    Cancela o filtro de todos os objetos
    Elseif vgEmpresa <> 0 then
    Filtra de acordo com o id da empresa
    End if.


    Isso mesmo.



    Eu teria que colocar em algum evento esse código ? Ou em algum outro lugar do access ?

    Pela tua pergunta, acredito que vc esteja utilizando as consultas do Access e não o código VBA.


    Se possível, poste aqui seu banco de dados para análise.

    ´[]'s

    FIM








    .................................................................................
    Arrow  Marcar tópico como Resolvido: clique aqui
    Arrow  Postar anexos no fórum: clique aqui

    Filtrar dados por usuario/empresa depois do login Setinf11
    Sistemas e Tecnologia Ltda
    avatar
    thiagonsilvaa
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 384
    Registrado : 12/01/2017

    Filtrar dados por usuario/empresa depois do login Empty Re: Filtrar dados por usuario/empresa depois do login

    Mensagem  thiagonsilvaa 24/5/2021, 19:41

    Boa tarde meu caro !

    Exatamente.
    Na verdade, este sistema é pra unificar as contas de outros sistemas (cada empresa utiliza uma plataforma) para que possa chegar em um único relatório para o diretor. Então minha ideia foi a seguinte:

    Criei uma planilha modelo para que possa ser realizada as importações neste meu projeto. Esta parte está ok, até então.

    Deixei o campo pagador como texto, que seriam as empresas a qual os usuários estarão vinculadas.
    No momento de preenchimento da planilha modelo o usuário deverá especificar qual pagador será. Não encontrei outra maneira de automatizar este processo para que possa tornar padrão os pagadores na hora da importação.

    Então vou deixar um padrão específico para cada usuário e informar, caso seja preenchido na planilha um nome diferente do que utilizaríamos para o filtro, o sistema não consegue fazer o filtro da empresa em questão.

    Caso haja sugestões, serão muito bem vindas, esta foi a maneira que consegui encontrar para a realização deste processo.

    Estou anexando a planilha para a importação e o projeto.

    Muito obrigado !
    Anexos
    Filtrar dados por usuario/empresa depois do login Attachmentprojeto contas a pagar.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (372 Kb) Baixado 23 vez(es)
    avatar
    thiagonsilvaa
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 384
    Registrado : 12/01/2017

    Filtrar dados por usuario/empresa depois do login Empty Re: Filtrar dados por usuario/empresa depois do login

    Mensagem  thiagonsilvaa 25/5/2021, 18:59

    Boa tarde a todos !

    Alexandre, quanto ao db, você conseguiu dar uma olhada ?

    Estou estruturando da maneira correta ? Ou nenhuma posição quanto à ele, por enquanto ?

    Agradeço.

    Conteúdo patrocinado


    Filtrar dados por usuario/empresa depois do login Empty Re: Filtrar dados por usuario/empresa depois do login

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 7/9/2024, 19:18