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


3 participantes

    [Resolvido]Filtro na Combo

    wltsilva
    wltsilva
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 79
    Registrado : 29/11/2012

    [Resolvido]Filtro na Combo Empty [Resolvido]Filtro na Combo

    Mensagem  wltsilva 11/3/2014, 13:46

    Pessoal,

    A um tempo atrás aqui nesse mesmo fórum eu postei uma dúvida, a respeito de um filtro que eu deveria efetuar em uma combo de um sub-formulário contínuo, de modo que os dados que fossem selecionados não aparecesse mais nas próximas linhas, perfeito tanto o código quanto o resultado:

    Código:
    TxtFornecedor.RowSource = "SELECT [Id_Fornecedor] FROM [Tab_Fornecedores] WHERE [Id_Fornecedor] NOT IN (SELECT [Id_Fornecedor] FROM [Tab_Force_Prod] WHERE Id_Produto=" & Forms!Formulario_Navegacao!Formulario_Produtos!TxtId_Produto & ") ORDER BY [Id_Fornecedor];"

    Porém a algumas semanas apareceu a necessidade de colocarmos mais segurança no projeto, de forma que cada usuário logado acessasse somente os dados que ele inseriu, até aí perfeito também.

    Baseado no exemplo do mestre Avelino: aqui, criei esse procedimento, em resumo, criei uma função dentro de consultas que chama a variável do id usuário logado.

    A pergunta é: como adapto o código anterior de modo que o filtro além de ser da forma que foi efetuada, um código único para cada produto (Id_Produto), também utilize o filtro do usuário logado?

    Campo filtro na consulta:
    Código:
    SeImed(fncIdUsuario()=1;[idusuario]>0;[idusuario]=fncIdUsuario())

    Obrigado a todos!

    Wellington


    .................................................................................
    "Amigos de verdade não se separam apenas seguem caminhos diferentes."
    julia-melo
    julia-melo
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 72
    Registrado : 02/01/2013

    [Resolvido]Filtro na Combo Empty Problema Idêntico

    Mensagem  julia-melo 5/4/2014, 14:06

    Estou com um problema idêntico.
    Cláudio Más
    Cláudio Más
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1314
    Registrado : 21/01/2012

    [Resolvido]Filtro na Combo Empty Re: [Resolvido]Filtro na Combo

    Mensagem  Cláudio Más 5/4/2014, 15:26

    Olá Júlia,

    Uma solução é criar uma consulta filtrando o usuário, e usar essa consulta no lugar da tabela, no código vba.
    Usando o exemplo do tópico, ao invés de:

    TxtFornecedor.RowSource = "SELECT [Id_Fornecedor] FROM [Tab_Fornecedores] WHERE [Id_Fornecedor] NOT IN (SELECT [Id_Fornecedor] FROM [Tab_Force_Prod] WHERE Id_Produto=" & Forms!Formulario_Navegacao!Formulario_Produtos!TxtId_Produto & ") ORDER BY [Id_Fornecedor];"

    O código seria:

    TxtFornecedor.RowSource = "SELECT [Id_Fornecedor] FROM [Cons_Fornecedores] WHERE [Id_Fornecedor] NOT IN (SELECT [Id_Fornecedor] FROM [Tab_Force_Prod] WHERE Id_Produto=" & Forms!Formulario_Navegacao!Formulario_Produtos!TxtId_Produto & ") ORDER BY [Id_Fornecedor];"

    Não faz muito sentido uma consulta na tabela de Fornecedores filtrando o usuário logado, mas talvez possa aplicar o conceito no seu projeto.
    wltsilva
    wltsilva
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 79
    Registrado : 29/11/2012

    [Resolvido]Filtro na Combo Empty Re: [Resolvido]Filtro na Combo

    Mensagem  wltsilva 7/4/2014, 11:48

    Cláudio,

    Realmente, o que você sugeriu funciona, porém ocorre uma divergência quando atualizamos ou inserimos um segundo registro.

    O filtro utiliza o resto dos itens que foram filtrados do objeto anterior, isso vale somente para a primeira linha.

    Exemplo:

    Cadastrei o produto 1 na cambo que possui os itens 1, 2, 3 e 4
    Utilizei os itens 1 e 2 (sobraram 3 e 4). Perfeito!

    Ao cadastrar o produto 2 na primeira linha aparece os itens 3 e 4 (sobra do produto 1), porém ao se tratar um novo produto e com um ID novo, deveria
    aparecer 1, 2, 3 e 4 na combo.

    Como eu disse, quando atualizo essa primeira linha o filtro volta a funcionar perfeitamente.

    ** Também acho não fazer sentido um filtro pelo usuário logado nos dados dos fornecedores, sugeri o inverso, porém foi definido que cada usuário ficasse
    responsável pelos itens cadastrados por ele, enfim...


    Novamente agradeço o auxílio.


    Última edição por wltsilva em 7/4/2014, 11:54, editado 1 vez(es) (Motivo da edição : Erro de português)


    .................................................................................
    "Amigos de verdade não se separam apenas seguem caminhos diferentes."
    wltsilva
    wltsilva
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 79
    Registrado : 29/11/2012

    [Resolvido]Filtro na Combo Empty Re: [Resolvido]Filtro na Combo

    Mensagem  wltsilva 7/4/2014, 12:19

    Cláudio,

    Problema solucionado, coloquei o SQL no evento "Ao receber foco", agora funciona perfeitamente.

    Código:
    Private Sub TxtFornecedor_GotFocus()
    TxtFornecedor.RowSource = "SELECT [Id_Fornecedor] FROM [Cons_Fornecedores] WHERE [Id_Fornecedor] NOT IN (SELECT [Id_Fornecedor] FROM [Tab_Force_Prod] WHERE Id_Produto=" & Forms!Formulario_Produtos!TxtId_Produto & ") ORDER BY [Id_Fornecedor];"
    End Sub

    Obrigado.


    .................................................................................
    "Amigos de verdade não se separam apenas seguem caminhos diferentes."
    julia-melo
    julia-melo
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 72
    Registrado : 02/01/2013

    [Resolvido]Filtro na Combo Empty Re: [Resolvido]Filtro na Combo

    Mensagem  julia-melo 7/4/2014, 13:32

    Fantástico meninos! Esse já era... cheers  farao 

    Valeu

    Julia

    Conteúdo patrocinado


    [Resolvido]Filtro na Combo Empty Re: [Resolvido]Filtro na Combo

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 27/4/2024, 06:47