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]Aplicar filtro em formulário

    johnnywell
    johnnywell
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 43
    Registrado : 02/02/2012

    [Resolvido]Aplicar filtro em formulário Empty Aplicar filtro em formulário

    Mensagem  johnnywell em 5/3/2012, 11:44

    Bom dia pessoal,

    Gostaria de pedir ajuda a vocês, pois estou tentando fazer os formulários do meu primeiro projeto e algo está errado com a aplicação de filtro.

    Exemplo. Eu criei um formulário para cadastro de produtos, com botões para manipulação do registro e até aí tudo bem. O problema é que quero colocar uma caixa de seleção para escolher um produto pelo nome e mostrar no formulário esse registro, o que acontece é que independente do produto que eu seleciono ele mostra o próximo registro da tabela relacionada ao formulário.

    Quando adicionei a caixa de seleção o formulário eu marquei a opção para mostrar no formulário o registro que eu escolher, agora não sei se precisa de mais alguma coisa para funcionar perfeitamente.

    Aguardo a ajuda de vocês, obrigado.
    avatar
    Convidad
    Convidado

    [Resolvido]Aplicar filtro em formulário Empty Re: [Resolvido]Aplicar filtro em formulário

    Mensagem  Convidad em 5/3/2012, 11:58


    Olá!
    Vc se refere a um formulário apenas (o de cadastro de produtos), ou está tentando abrir o form de produtos num registro específico a partir de outro formulário ?

    Ou seja, sua "caixa de seleção", que creio seja uma caixa de combinação ou de listagem, está no form de produtos ou em outro ?
    johnnywell
    johnnywell
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 43
    Registrado : 02/02/2012

    [Resolvido]Aplicar filtro em formulário Empty Re: [Resolvido]Aplicar filtro em formulário

    Mensagem  johnnywell em 5/3/2012, 12:39

    A caixa de listagem está no form de cadastro de produto que altera apenas a tabela de produtos.
    avatar
    Convidad
    Convidado

    [Resolvido]Aplicar filtro em formulário Empty Re: [Resolvido]Aplicar filtro em formulário

    Mensagem  Convidad em 5/3/2012, 13:14


    Sua ListBox deve ter na Propriedade Origem da Linha uma instrução SQL que retorne os campos ID e Nome da tabela de Produtos.
    Algo assim:
    SELECT TabelaProdutos.CódigoProduto, TabelaProdutos.NomeProduto FROM TabelaProdutos ORDER BY TabelaProdutos.NomeProduto;

    Obs: deve mudar os Nomes dos controles conforme os seus.

    Depois, no evento Após atualizar da sua ListBox, coloque este código:


    Private Sub NomeListBox_AfterUpdate()
    Dim rs As Object
    Set rs = Me.Recordset.Clone
    rs.FindFirst "[CódigoProduto] = " & str(Me![NomeListBox])
    Me.Bookmark = rs.Bookmark
    Set rs = Nothing
    End Sub

    johnnywell
    johnnywell
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 43
    Registrado : 02/02/2012

    [Resolvido]Aplicar filtro em formulário Empty Re: [Resolvido]Aplicar filtro em formulário

    Mensagem  johnnywell em 5/3/2012, 13:17

    Hum... quando voltar para casa vou tentar e te dou o feedback, obrigado norbs.
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3521
    Registrado : 04/04/2010

    [Resolvido]Aplicar filtro em formulário Empty Re: [Resolvido]Aplicar filtro em formulário

    Mensagem  Avelino Sampaio em 5/3/2012, 14:04

    Olá

    Alem da ótima dica do Norberto, veja também o meu tutorial abaixo, que possui vídeo e arquivo exemplo:

    Tutorial sobre filtragens

    Bom estudo!
    cafpr
    cafpr
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 969
    Registrado : 08/02/2011

    [Resolvido]Aplicar filtro em formulário Empty Re: [Resolvido]Aplicar filtro em formulário

    Mensagem  cafpr em 5/3/2012, 16:02

    Colega Johnnny, boa tarde, tudo tranquilo.... assim antes de postar vá primeiro no famoso "busca". Sua dúvida foi imensamente debatido no forum. digite "lá" filtro e veja o resultado. e caso assim mesmo achar e não conseguir adaptar ou coisa parecida retorne que o forum lhe ajudará no que preciso for.....
    Espero que compreenda.... Very Happy
    johnnywell
    johnnywell
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 43
    Registrado : 02/02/2012

    [Resolvido]Aplicar filtro em formulário Empty Re: [Resolvido]Aplicar filtro em formulário

    Mensagem  johnnywell em 5/3/2012, 16:35

    Desculpe, na próxima informo que não encontrei a resposta antes. Obrigado.
    johnnywell
    johnnywell
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 43
    Registrado : 02/02/2012

    [Resolvido]Aplicar filtro em formulário Empty Re: [Resolvido]Aplicar filtro em formulário

    Mensagem  johnnywell em 5/3/2012, 22:48

    norbs, o código que me passou funcionou perfeitamente, você poderia me explicar ele? Ainda não entendo de VB.

    Obrigado.
    avatar
    Convidad
    Convidado

    [Resolvido]Aplicar filtro em formulário Empty Re: [Resolvido]Aplicar filtro em formulário

    Mensagem  Convidad em 5/3/2012, 23:08


    Este código em particular envolveria uma explicação bem longa, mas a dica é vc selecionar qualquer palavra de um código na janela do módulo e pressionar F1. A Ajuda do VBA é muito boa.
    No módulo vc também pode digitar qualquer termo, selecionar e clicar F1. (Depois delete o que digitou e não salve.)
    johnnywell
    johnnywell
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 43
    Registrado : 02/02/2012

    [Resolvido]Aplicar filtro em formulário Empty Re: [Resolvido]Aplicar filtro em formulário

    Mensagem  johnnywell em 5/3/2012, 23:32

    Beleza vou dar uma olhada nisso.

    Só mais uma duvida relacionada. Quado eu crio um novo registro ele não aparece na caixa de combinação a menos que eu feche e abra novamente o formulário.

    O que eu poderia fazer para atualizar em "tempo real"?

    Desde já agradeço.
    avatar
    Convidad
    Convidado

    [Resolvido]Aplicar filtro em formulário Empty Re: [Resolvido]Aplicar filtro em formulário

    Mensagem  Convidad em 5/3/2012, 23:52


    Precisa adicionar um Me.NomeListBox.Requery a algum evento do form.
    O Requery faz com que o controle seja recarregado. Isto atualiza a lista.
    Se tem um botão Salvar, pode colocar ali. Daí quando salva o form já atualiza a ListBox.
    johnnywell
    johnnywell
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 43
    Registrado : 02/02/2012

    [Resolvido]Aplicar filtro em formulário Empty Re: [Resolvido]Aplicar filtro em formulário

    Mensagem  johnnywell em 6/3/2012, 01:11

    Beleza, adicionei no botão e funcionou certinho.


    Agora estou com uma situação um pouco mais complicada norbs,

    Tenho um form para cadastro de estoque que relaciona a tabela produto e a estoque em si.

    Queria um filtro para nome de produto que ao selecionar o produto ele já inclui um novo registro referente a esse produto, sendo preciso eu digitar apenas o número de série.

    Não sei se ficou claro.

    Eu tentei utilizar o mesmo código que você me passou para o registro de produto, mas não funcionou. Mesmo com algumas mudanças que chutei ser valido hehehe.

    Pode me ajudar com mais essa?

    P.S. Acho que daqui a pouco vão fixar o tópico como curso de filtros hahaha. Desculpem a brincadeira, mas realmente não achei essas coisas.



    avatar
    Convidad
    Convidado

    [Resolvido]Aplicar filtro em formulário Empty Re: [Resolvido]Aplicar filtro em formulário

    Mensagem  Convidad em 6/3/2012, 01:24


    Mas se vc já está no form de cadastro de estoque pode ter uma ComboBox para escolher o produto. No caso, vc já estará adicionando um novo registro ao estoque.
    Ou como é sua estrutura de cadastro de estoque ? Como funciona ?
    johnnywell
    johnnywell
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 43
    Registrado : 02/02/2012

    [Resolvido]Aplicar filtro em formulário Empty Re: [Resolvido]Aplicar filtro em formulário

    Mensagem  johnnywell em 6/3/2012, 01:26

    Eu fiz nesse modelo que o Alec me deu uma luz.


    alec_rs em 16/2/2012, 11:21
    Eu desenvolvi um controle de estoque há algum tempo atrás que tinha uma tabela de produtos e outra com números de serie e um campo que verificava se o produto ainda estava em estoque ou já tinha sido vendido.
    Basicamente, a estrutura das tabelas é essa:

    PRODUTO
    ID_PRODUTO Chave
    DESCRICAO
    etc...

    ESTOQUE
    ID_ESTOQUE Chave
    PRODUTO_ID_PRODUTO Chave Estrangeira
    NR_SERIE
    VENDIDO (S/N)

    Cada registro da tabela ESTOQUE corresponde a um item adquido. As vendas não excluem o registro (para efeito de histórico), apenas marca ele como vendido.

    Não sei se fui claro, mas é por aí.

    Alec

    avatar
    Convidad
    Convidado

    [Resolvido]Aplicar filtro em formulário Empty Re: [Resolvido]Aplicar filtro em formulário

    Mensagem  Convidad em 6/3/2012, 01:40


    Certo. Mas como vc insere dados na tabela Estoque ? Pelo form de cadastro de Estoque que vc mencionou, certo ?
    Se ele funciona como eu citei, é só ir para novo registro, escolher o produto numa lista, completar os demais dados, e salvar.

    Por isso eu não entendi quando disse "ao selecionar o produto ele já inclui um novo registro". Vc vai para um novo registro e então escolhe o produto.

    Ou me explica como vc faz aí.
    johnnywell
    johnnywell
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 43
    Registrado : 02/02/2012

    [Resolvido]Aplicar filtro em formulário Empty Re: [Resolvido]Aplicar filtro em formulário

    Mensagem  johnnywell em 6/3/2012, 02:03

    Vou tentar explicar,

    A tabela de estoque está assim:
    EstoqID -> Chave primária
    EstoqProdID -> Chave estrangeira
    EstoqNumSerie
    EstoqVendido

    Origem da Linha da combobox está assim:
    SELECT [tab_Produto].[ProdID], [tab_Produto].[ProdNome] FROM [tab_Produto] ORDER BY [ProdNome];

    Estou usando código assim:

    Private Sub Estoque_ProdNome_AfterUpdate()
    Dim rs As Object
    Set rs = Me.Recordset.Clone
    rs.FindFirst "[EstoqProdID] = " & Str(Me![Estoque_ProdNome])
    Me.Bookmark = rs.Bookmark
    Set rs = Nothing
    End Sub

    Assim ele está listando o ID dos produtos ao invés do nome e não adiciona o produto corretamente.

    Se eu inverter em Origem da Linha e colocar tab_Protudo.ProdNome primeiro ele lista pelo nome, mas o seguinte erro quando eu seleciono.

    Erro em tempo de execução '13':
    Tipos incompatíveis
    avatar
    Convidad
    Convidado

    [Resolvido]Aplicar filtro em formulário Empty Re: [Resolvido]Aplicar filtro em formulário

    Mensagem  Convidad em 6/3/2012, 10:36


    Este código serve para mover para determinado registro.

    No caso, vc quer escolher um produto na lista. Não precisa de código.
    É melhor usar uma ComboBox, com a mesma instrução na Origem da Linha.
    Só que nas propriedades, em Largura das colunas, deixe a 1ª coluna com 0cm. Isso deixa ela oculta, exibindo o nome do produto, mas continua pesquisando pelo código.
    johnnywell
    johnnywell
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 43
    Registrado : 02/02/2012

    [Resolvido]Aplicar filtro em formulário Empty Re: [Resolvido]Aplicar filtro em formulário

    Mensagem  johnnywell em 6/3/2012, 11:23

    Certo, vou tentar dessa forma e dou o retorno quando chegar em casa.

    Obrigado.
    johnnywell
    johnnywell
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 43
    Registrado : 02/02/2012

    [Resolvido]Aplicar filtro em formulário Empty Re: [Resolvido]Aplicar filtro em formulário

    Mensagem  johnnywell em 6/3/2012, 23:47

    Infelizmente não funcionou norbs, eu seleciono o produto pelo nome mas ele não relaciona o produto ao item do estoque. Algo mudou no meu access, antes quando eu incluia uma combobox no form abria um assistente pra configurar algumas coisas como a coluna de cada campo, mas agora não aparece mais isso. Pode ser alguma coisa que eu desativei?
    avatar
    Convidad
    Convidado

    [Resolvido]Aplicar filtro em formulário Empty Re: [Resolvido]Aplicar filtro em formulário

    Mensagem  Convidad em 7/3/2012, 00:04


    O seu formulário deve ter sua origem na tabela de estoque.
    O campo EstoqProdID - que é o campo que armazena o código do produto que vc está adicionando à tabela de estoque - deve ser a origem da ComboBox.
    E a ComboBox tem sua origem na tabela de produtos - cfe aquela instrução SQL.

    Lembrando que deve haver uma relação estabelecida entre as tabelas Estoque e Produtos.
    johnnywell
    johnnywell
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 43
    Registrado : 02/02/2012

    [Resolvido]Aplicar filtro em formulário Empty Re: [Resolvido]Aplicar filtro em formulário

    Mensagem  johnnywell em 7/3/2012, 00:15

    Mas se eu fizer a combobox com origem em EstoqueProdID só irá listar os itens que já tenho cadastrado na tab_Estoque. O objetivo desse formulários seria listar os produtos que eu tenho cadastro na tab_Produtos para poder cadastrar algum deles no estoque e atribuir um número de série a ele. Talvez o problema seja o modelo que estou tentando fazer.
    avatar
    Convidad
    Convidado

    [Resolvido]Aplicar filtro em formulário Empty Re: [Resolvido]Aplicar filtro em formulário

    Mensagem  Convidad em 7/3/2012, 00:21


    Amigo, a lista exibida na combo vem da tabela produtos.
    Vc estará escolhendo o código do produto da tabela produtos.
    E ao escolher, vc está preenchendo o campo EstoqueProdID da tabela estoque.

    A FonteDoControle da combo é o campo EstoqueProdID.
    A OrigemDaLinha da combo é a instrução SQL baseada na tabela produtos.


    Última edição por norbs em 7/3/2012, 00:27, editado 1 vez(es)
    johnnywell
    johnnywell
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 43
    Registrado : 02/02/2012

    [Resolvido]Aplicar filtro em formulário Empty Re: [Resolvido]Aplicar filtro em formulário

    Mensagem  johnnywell em 7/3/2012, 00:24

    Hum... não sabia sobre a Fonte do Controle. vou testar aqui.
    avatar
    Convidad
    Convidado

    [Resolvido]Aplicar filtro em formulário Empty Re: [Resolvido]Aplicar filtro em formulário

    Mensagem  Convidad em 7/3/2012, 00:35


    Confira a propriedade Nome dos campos.

    Veja a instrução SQL que disse estar usando:
    SELECT [tab_Produto].[ProdID], [tab_Produto].[ProdNome] FROM [tab_Produto] ORDER BY [ProdNome];

    E veja como disse serem os Nomes dos controles da tabela produtos:
    PRODUTO
    ID_PRODUTO Chave
    DESCRICAO
    etc...

    Talvez o problema seja este.
    johnnywell
    johnnywell
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 43
    Registrado : 02/02/2012

    [Resolvido]Aplicar filtro em formulário Empty Re: [Resolvido]Aplicar filtro em formulário

    Mensagem  johnnywell em 7/3/2012, 00:49

    Os nomes estão corretos, esses da tabela que tinha passado primeiro era só o exemplo que tinham me falado aqui no fórum. O correto é como está na instrução sql mesmo.

    O que faltava era o detalhe do FonteDoControle que eu não conhecia.

    A única coisa que está em desacordo é que a ComboBox está listando o código ao invés do nome, mas eu conferi com os outros dois forms de produto e cliente onde uso o mesmo tipo de filtro e aparentemente está ok a OrigemDaLinha.

    Se na OrigemDaLinha eu colocar o ProdNome na frente do ProdID lista corretamente mas da o seguinte erro.

    O valor que você inseriu não é valido para este campo.

    Estranho que nos outros formulários da certinho.
    avatar
    Convidad
    Convidado

    [Resolvido]Aplicar filtro em formulário Empty Re: [Resolvido]Aplicar filtro em formulário

    Mensagem  Convidad em 7/3/2012, 01:06


    Se um formulário é vinculado a uma tabela, a origem dos seus campos será os Nomes dos campos na tabela.

    E como já expliquei na msg 18, a combo tem 2 colunas: ProdID e ProdNome. Deve deixar nesta ordem, pois a a propriedade ColunaAcoplada deve estar como 1, o que significa que este é o campo que ficará registrado.
    Na propriedade LarguraDaColuna pode deixar a coluna 1 com 0cm e ela não será exibida na combo, e ProdNome será exibido. Mas o que fica gravado é a coluna acoplada.
    Se quiser coloque uma medida maior e a coluna será exibida, mas deverá digitar o código.
    johnnywell
    johnnywell
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 43
    Registrado : 02/02/2012

    [Resolvido]Aplicar filtro em formulário Empty Re: [Resolvido]Aplicar filtro em formulário

    Mensagem  johnnywell em 7/3/2012, 01:15

    norbs antes de mais nada obrigado pela sua paciência e ajuda, com certeza não conseguiria fazer isso aqui sem sua ajuda e de outros amigos aqui do fórum também.

    Nesse meio tempo entre sua resposta eu reparei na ColunaAcoplada e dei um F1 nela assim descobri qual sua importância, então fui lá e mudei para 2 assim ela listava os nomes que estavam na coluna 1 e utilizava como controle o ID da coluna 2.

    Desculpa a demora pra entender o que você queria dizer sobre deixar a coluna 1 com 0cm só agora é que vi realmente da pra fazer isso pela Folha de Propriedades( antes eu tinha feito isso pelo assistente nos outros forms, mas não está mais abrindo nele direto).

    Já deixei do jeito que você falou para padronizar e agora está funcionando certinho.

    Vou continuar a brincadeira aqui até encontrar minha próxima pedra no caminho.

    Novamente agradeço.
    johnnywell
    johnnywell
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 43
    Registrado : 02/02/2012

    [Resolvido]Aplicar filtro em formulário Empty Re: [Resolvido]Aplicar filtro em formulário

    Mensagem  johnnywell em 7/3/2012, 01:24

    Resolvido.
    avatar
    Convidad
    Convidado

    [Resolvido]Aplicar filtro em formulário Empty Re: [Resolvido]Aplicar filtro em formulário

    Mensagem  Convidad em 7/3/2012, 01:33


    Ficamos felizes que tenha resolvido.
    Precisando de uma mão pra remover pedra, estamos aí.

    Continue usando o F1.
    crysostomo
    crysostomo
    Super Avançado
    Super Avançado

    Respeito às Regras 75%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 940
    Registrado : 23/01/2018

    [Resolvido]Aplicar filtro em formulário Empty Re: [Resolvido]Aplicar filtro em formulário

    Mensagem  crysostomo em 10/8/2019, 02:53

    boa noite , se o cliente erra o nome e depois deixar ela em branco , vai dar o erro como null invalida , como posso tratar esse erro?


    .................................................................................
    Uma mão ajuda a outra.
    Feliz aquele que transfere o que sabe e aprende o que ensina.
    crysostomo
    crysostomo
    Super Avançado
    Super Avançado

    Respeito às Regras 75%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 940
    Registrado : 23/01/2018

    [Resolvido]Aplicar filtro em formulário Empty Re: [Resolvido]Aplicar filtro em formulário

    Mensagem  crysostomo em 10/8/2019, 03:00

    noa noite , eu tenho um formulario que udo o codigo de filtro
    Dim rs As Object
    Código:
     Set rs = Me.Recordset.Clone
             rs.FindFirst "[codigo] = " & Str(Me![localizar])
             Me.Bookmark = rs.Bookmark
          Set rs = Nothing
    End Sub

    mas quando o cliente apaga o nome  deixa o campo em branco da erro como uso de null invalida, como tratar esse erro?
    e quando digita o nome não aparece na lista. o cliente tem que descer a cascata pra procurar


    .................................................................................
    Uma mão ajuda a outra.
    Feliz aquele que transfere o que sabe e aprende o que ensina.

    Conteúdo patrocinado

    [Resolvido]Aplicar filtro em formulário Empty Re: [Resolvido]Aplicar filtro em formulário

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 15/9/2019, 23:57