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]Filtro em Cascata

    Compartilhe

    vileman
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 461
    Registrado : 25/05/2011

    [Resolvido]Filtro em Cascata

    Mensagem  vileman em Dom 04 Jun 2017, 04:47

    Olá a todos, mais uma vez precisando da ajuda dos Universitários. * Uso o Access 2003

    Fiz buscas no Fórum, mas não consegui solução para o que preciso, o tópico que mais que se aproximou foi:
    [Você precisa estar registrado e conectado para ver este link.]

    Mesmo assim, o tópico acima está sem solução até esta data, então explico:

    Em um subformulário tenho 2 Caixas de combinação:
    1ª Caixa: Campo 'IDProduto' - seleciona o tipo do Produto - Origem: Tabela 'T14_Produtos'

    Cod
    Produto --- NomeProduto
    1 ------------ Refeição
    2 ------------ Suco
    3 ------------ Açaí
    4 ------------ Água Mineral
    5 ------------ Bolo
    6 ------------ Musse
    7 ------------ Picolé
    8 ------------ Pizza Vegana
    9 ------------ Pizza Vegetariana
    10 ----------  Embalagem

    2ª Caixa: Campo 'IDSubProduto' - seleciona o tipo do SubProduto - Origem: 'Tabela T15_SubProdutos'

    Cod
    SubProduto ------ TipoSubProduto -------------- NomeSubProduto
    1 -------------------- Almoço Self Service -------- Almoço
    2 -------------------- Janta Self Service ----------- Janta
    3 -------------------- Sopa Self Service ----------- Sopa de Legumes
    4 -------------------- Sopa Self Service ----------- Sopa de Spinafre
    5 -------------------- Sopa Self Service ----------- Sopa Da Casa
    6 -------------------- Suco ---------------------------- Laranja
    7 -------------------- Suco ---------------------------- Abacaxi
    8 -------------------- Suco ---------------------------- Limão
    9 -------------------- Suco ---------------------------- Detox
    10 ------------------- Suco ---------------------------- Maracujá
    11 ------------------- Açaí ----------------------------- Granola de Banana 300g
    12 ------------------- Açaí ----------------------------- Granola de Banana 500g
    13 ------------------- Açaí ----------------------------- Granola de Fruta 300g
    14 ------------------- Açaí ----------------------------- Granola de Fruta 500g
    15 ------------------- Água Mineral ------------------ Com Gás 300ml
    16 ------------------- Água Mineral ------------------ Com Gás 500ml
    17 ------------------- Água Mineral ------------------ Sem Gás 300ml
    18 ------------------- Água Mineral ------------------ Sem Gás 500ml
    19 ------------------- Água Mineral ------------------ Copo
    20 ------------------- Bolo ----------------------------- Maracujá
    21 ------------------- Bolo ----------------------------- Cacau
    22 ------------------- Bolo ----------------------------- Frutas
    23 ------------------- Musse --------------------------- Maracujá
    24 ------------------- Musse --------------------------- Frutas
    25 ------------------- Picolé --------------------------- Jaca com açúcar
    26 ------------------- Picolé --------------------------- Jaca sem açúcar
    27 ------------------- Picolé --------------------------- Abacaxi
    28 ------------------- Picolé --------------------------- Abacaxi com Hortelã
    29 ------------------- Picolé --------------------------- Coco
    30 ------------------- Picolé --------------------------- Morango
    31 ------------------- Picolé --------------------------- Amendoim
    32 ------------------- Picolé --------------------------- Limão
    33 ------------------- Picolé --------------------------- Acerola
    34 ------------------- Picolé --------------------------- Maracujá
    35 ------------------- Picolé --------------------------- Tapioca
    36 ------------------- Pizza Vegana ------------------ Roma
    37 ------------------- Pizza Vegana ------------------ Florença
    38 ------------------- Pizza Vegana ------------------ Alexandria
    39 ------------------- Pizza Vegetariana ------------ Roma
    40 ------------------- Pizza Vegetariana ------------ Florença
    41 ------------------- Pizza Vegetariana ------------ Alexandria
    42 ------------------- Embalagem -------------------- Embalagem p/viagem

    Observem que primeiro selecionaria um dos Produtos a cada registro e em seguida um SubProduto referente ao Produto, funcionaria da seguinte forma:
    Exemplos:
    Ao selecionar o Produto do Código 1 (Refeição) e quando fosse selecionar o SubProduto nessa 2ª caixa de combinação mostraria apenas os itens do SubProduto que são de Refeição que vão do Código 1 ao 5
    Ao selecionar o Produto do Código 2 (Suco) e quando fosse selecionar o SubProduto na 2ª caixa de combinação mostraria apenas os itens do SubProduto que são de Suco que vão do Código 6 ao 10
    Ao selecionar o Produto do Código 7 (Picolé) e quando fosse selecionar o SubProduto na 2ª caixa de combinação mostraria apenas os itens do SubProduto que são de Picolé que vão do Código 25 ao 35
    ... e assim por diante...

    Seria um filtro com outro filtro, onde o 2º filtro depende da escolha na 1ª caixa de combinação.
    Fiquem a vontade para acrescentar mais algum campo em quaisquer das tabelas envolvidas, se for preciso, ou de outra forma.

    avatar
    tauron
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 697
    Registrado : 07/12/2011

    Re: [Resolvido]Filtro em Cascata

    Mensagem  tauron em Dom 04 Jun 2017, 12:12

    Bem acho que voce nao olhou nos exemplos contidos na mensagem 2. A funcionalidade eh a mesma:
    Código:
    Boa tarde,

    Creio que os exemplos do mestre JPaulo possam resolver a sua questão.

    Repositório de exemplos: Filtragem em Cascata
    Exemplo:  dropbox.com/s/rc0mk99fvepjdyf/Combos%20Expandem%20em%20Cascata_JPaulo.rar?dl=1

    Repositório de exemplos:  Combos em Cascata num Formulario Continuo

    Sucesso

    vileman
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 461
    Registrado : 25/05/2011

    Filtro em Cascata

    Mensagem  vileman em Dom 04 Jun 2017, 21:04

    Prezado Tauron

    Realmente, tens razão, como se diz aqui no nordeste, passei "batido" nessa.
    Vou olhar e depois posto o resultado, mas pelo visto deve ser isso mesmo, valeu pela dica.


    vileman
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 461
    Registrado : 25/05/2011

    Filtro em Cascata

    Mensagem  vileman em Dom 25 Jun 2017, 03:55

    Boa noite

    Usando a sugestão do amigo Tauron:

    Repositório de exemplos: Filtragem em Cascata
    Exemplo:  dropbox.com/s/rc0mk99fvepjdyf/Combos%20Expandem%20em%20Cascata_JPaulo.rar?dl=1

    Consegui fazer parcialmente o que necessito, visto que no arquivo-exemplo JPaulo usou como exemplo um campo não-acoplado e funciona bem, mas a minha intenção é salvar o registro em um formulário contínuo.

    Refiz minha rotina que antes usava 2 tabelas: T14_Produtos e T15_SubProdutos, ou seja, pelo exemplo de JPaulo acima precisaria apenas de uma Tabela então deixei a T14_Produtos com os seguintes campos:

    Em um subformulário tenho 1 Caixa de combinação, que busca o registro conforme imagem abaixo:
    [Você precisa estar registrado e conectado para ver esta imagem.]

    Como é um formulário contínuo preciso gravar o campo 'IDProduto' a cada escolha na Tabela acima para um campo correspondente na Tabela 'T101_ConsumoXItens', também chamado 'IDProduto' e a partir das informações desse registro fazer os cálculos do item e depois o somatório do total do consumo.

    Resumo:
    1) Formulário principal: F10_Consumo - Tabela: T10_Consumo
    2) Subformulário vinculado: F101_ConsumoXItens - Tabela: T101_ConsumoXItens
    PS: Vinculados pela relação um-para-vários. Campo Mestre: CodConsumo. Campo Filho: IDConsumo

    3) Ação: Um Consumo pode ter vários itens que são escolhidos através da tabela 'T14_Produtos' que tem o Código, o Nome, o Tipo e Valor de cada item escolhido, que por sua vez dá um total geral do consumo
    Exemplo: 1 Cliente consume
    1) Item 1 => Produto 01: SelfService   - Tipo: Almoço   - Qte: 0,585 - Valor Unitário: R$ 45,90 - Valor Total: R$ 26,85
    2) Item 2 => Produto 19: Suco            - Tipo: Maracujá - Qte: 02     - Valor Unitário: R$   6,00 - Valor Total: R$ 12,00
    3) Item 3 => Produto 26: Água mineral - Tipo: Sem Gás - Qte. 01     - Valor Unitário: R$   5,00 - Valor Total: R$   5,00

    Resultado: Ao escolher no item 1 o Código 1, esse código seria gravado na tabela 'T101_ConsumoXItens' e eu conseguiria capturar os demais valores dos outros campos: Nome, Tipo, Qte. e Valor, que por sua vez também existem nessa tabela em questão, e assim poder fazer o somatório de todos os itens.

    Na rotina descrita na minha 1ª mensagem deste tópico já estava a conseguir fazer tudo isso, mas como a tabela ficou muito grande, e tinha que escolher um Produto em uma tabela e em outra tabela escolher o SubProduto do produto, o ideal ficou sendo colocar em uma única tabela conforme o exemplo de JPaulo, pois é bem mais prático e dinâmico o uso para o usuário.

    Então, como faria para gravar o campo 'IDProduto' da tabela T14_Produto para o campo 'IDProduto' e os demais campos na tabela T101_ConsumoXItens a cada vez que escolhesse um produto que equivale a um item nessa 2ª tabela?
    Se alguém tiver algum arquivo-exemplo que funcione assim, também serviria para estudos e adaptação, ou de que forma eu faria essa rotina?
    avatar
    tauron
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 697
    Registrado : 07/12/2011

    Re: [Resolvido]Filtro em Cascata

    Mensagem  tauron em Dom 25 Jun 2017, 11:46

    Vileman,

    Pode ate dar uma pouco mais de trabalho mas pode ser feito sim com duas tabelas. Posta seu projeto e, se possuir o com duas tabelas poste ambos.

    vileman
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 461
    Registrado : 25/05/2011

    Filtro em Cascata

    Mensagem  vileman em Dom 25 Jun 2017, 19:40

    Tauron, segue em anexo o arquivo com as 2 tabelas. A tentativa com uma tabela também está no subformulário.
    Anexos
    FMA - Combo.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (142 Kb) Baixado 18 vez(es)
    avatar
    tauron
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 697
    Registrado : 07/12/2011

    Re: [Resolvido]Filtro em Cascata

    Mensagem  tauron em Qui 29 Jun 2017, 03:35

    Peço desculpas pela demora, problemas e problemas. De uma olhada e vejase estamos progredindo.
    Anexos
    FMA-NEW.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (148 Kb) Baixado 18 vez(es)

    vileman
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 461
    Registrado : 25/05/2011

    Filtro em Cascata

    Mensagem  vileman em Qui 29 Jun 2017, 21:50

    Sem nenhum problema Tauron, faça a seu tempo.
    Vou testar e posto o resultado. Obrigado

    vileman
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 461
    Registrado : 25/05/2011

    Filtro em Cascata

    Mensagem  vileman em Qui 29 Jun 2017, 22:48

    Amigo Tauron,

    Exatamente isso - pois é, tão simples pra quem sabe -, faltou apenas o seguinte:

    Após atualizar o campo 'IDSubProduto' só mostra o nome do Subproduto no registro em que se está posicionado e os demais nomes somem nos outros registros.

    Exemplo: Com 03 itens de consumo:
    Após incluir o 1º item mostra o nome do Subproduto;
    Após incluir o 2º item mostra o nome do Subproduto, mas apaga o nome do 1º Subproduto
    Após incluir o 3º item mostra o nome do Subproduto, mas apaga o nome do 2º Subproduto, permanecendo o o nome do 1º Subproduto também apagado

    e assim, por diante se houver mais itens.

    Tentei ajustar, mas não consegui.

    PS: Segue imagens para melhor ilustração:

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

    vileman
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 461
    Registrado : 25/05/2011

    Filtro em Cascata

    Mensagem  vileman em Ter 04 Jul 2017, 18:51

    Up !

    Se alguém mais além do amigo Tauron, puder ajudar nessa questão, agradeço muito...

    No aguardo...

    vileman
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 461
    Registrado : 25/05/2011

    Filtro em Cascata

    Mensagem  vileman em Dom 09 Jul 2017, 15:53

    Up !

    Se alguém mais além do amigo Tauron, puder ajudar nessa questão, agradeço muito...

    No aguardo...

    vileman
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 461
    Registrado : 25/05/2011

    Filtro em Cascata

    Mensagem  vileman em Qua 19 Jul 2017, 00:04

    Up !

    Mais uma vez peço: Se alguém além do amigo Tauron, puder ajudar nessa questão, agradeço muito...

    Aguardando

    vileman
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 461
    Registrado : 25/05/2011

    Filtro em Cascata

    Mensagem  vileman em Qui 20 Jul 2017, 14:04

    Bom dia a todos. Dou como Resolvido o tópico, pois consegui com ajuda do Mestre Avelino no site RedeAccess.

    A solução - complemento - ficou assim:

    Campo: IDProduto
    Private Sub IDProduto_AfterUpdate()
           Me.IDSubProduto.SetFocus
           Me.IDSubProduto = ""
           Me.IDSubProduto.Requery
           Me.Requery
    End Sub

    Campo: IDSubProduto
    Private Sub IDSubProduto_AfterUpdate()
           Me.QteItem.SetFocus
           Me.ValorUnitario = IDSubProduto.Column(3)
           Me!SubProduto = Me!IDSubProduto.Column(2)
    End Sub

    PS: Precisou criar o campo 'SubProduto' na tabela T101_ConsumoXItens


    Última edição por vileman em Sex 21 Jul 2017, 01:27, editado 1 vez(es) (Razão : Criação de um campo)

      Data/hora atual: Ter 21 Nov 2017, 21:08