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]Consulta exclusão com base nas informações retornadas por outra consulta

    avatar
    Cleniroweb
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 71
    Registrado : 16/03/2014

    [Resolvido]Consulta exclusão com base nas informações retornadas por outra consulta Empty [Resolvido]Consulta exclusão com base nas informações retornadas por outra consulta

    Mensagem  Cleniroweb 16/3/2014, 16:55

    Embarassed Caros colegas, Criei uma consulta para filtrar dados, porém necessito excluir estes dados, porém ao converter a consulta para o mode exclusão, a função order by e soma se perder, desta forma prezaria uma ajuda dos colegas, segue abaixo meu código na consulta simples:


    SELECT tb_Planilhao.Chave2, tb_Planilhao.Conta, tb_Planilhao.[Centro Dest], IIf([Valor Transação]<0,[Valor Transação]*-1,[Valor Transação]) AS Abs, Sum(tb_Planilhao.[Valor Transação]) AS [SomaDeValor Transação]
    FROM tb_Planilhao
    GROUP BY tb_Planilhao.Chave2, tb_Planilhao.Conta, tb_Planilhao.[Centro Dest], IIf([Valor Transação]<0,[Valor Transação]*-1,[Valor Transação])
    HAVING (((Sum(tb_Planilhao.[Valor Transação]))=0));


    Obrigado,
    Cleniro
    Noobezinho
    Noobezinho
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4140
    Registrado : 29/06/2012

    [Resolvido]Consulta exclusão com base nas informações retornadas por outra consulta Empty Re: [Resolvido]Consulta exclusão com base nas informações retornadas por outra consulta

    Mensagem  Noobezinho 16/3/2014, 22:18

    Cleniro

    Mas é isso mesmo que a consulta exclusão faz, exclui, não retorna resultados, entendeu?

    Agora se você quer visualizar os dados antes de excluir é outra coisa.

    Para isso crie um formulário para a consulta que já fez e depois coloque um botão excluir no pé do formulário.
    Como fazê-lo?
    Coloque essa consulta numa folha de consulta, se já não estiver e nomeia-a.
    Depois crie uma consulta excluir tendo como base essa consulta.
    Teste se funciona.
    Uma vez funcionando, coloque essa consulta exclusão no evento ao clicar de um botão usando:

    Docmd.RunSQL"aqui vai a consulta em código SQL"

    Abraços
    Noob




    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...


    Ajude a ser ajudado:
    Seja objetivo na dúvida, dê os detalhes do que precisa, sem rodeios.
    Quando anexar teu projeto, diga onde está o problema, ganhamos mais tempo
    sem precisar procurar o mesmo.
    avatar
    Cleniroweb
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 71
    Registrado : 16/03/2014

    [Resolvido]Consulta exclusão com base nas informações retornadas por outra consulta Empty Consulta exclusão com base nas informações retornadas por outra consulta

    Mensagem  Cleniroweb 17/3/2014, 02:02

     Embarassed 
    Noob,

    É o seguinte, o objetivo da consulta acima é apenas visualização dos dados que desejo excluir, dos 1000 registros que tenho na tabela, ela me mostra 6 linhas, até aí tudo bem. Partindo dessa consulta, criei uma outra consulta para excluir estes dados, porém, ao convertê-la para consulta exclusão, todos os 1000 registros que tenho na tabela são excluídos, isso porque ao converter a consulta para consulta exclusão, os critérios Group by e Sum (soma) se perdem.

    No exemplo abaixo, mostro 3 linhas na tabela, onde a consulta simples retornou-me somente o código 00001 do campo 1 com o valor R$ = 0,00, isso porque agrupou por código (campo 1) e depois somou-os, e como os valores são iguais, porém + e -, logo o resultado será igual a zero e, é exatamente essas duas linhas que desejo excluí-las, porém como já informei, ao criar uma nova consulta exclusão, a condição de ordenar por código (campo 1 ) e somar (campo 2) se perdem, como ficaria esse código no SQL ?

    Dados da tabela:

    Campo 1 (código) Campos 2 (Valor)
    00001 Vlr R$ -350,00
    00001 Vlr R$ 350,00
    00002 Vlr R$ 400,00


    A consulta simples retorna-me os seguintes dados:

    Campo 1 Campo 2
    00001 Vlr R$ 0,00
    avatar
    Cleniroweb
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 71
    Registrado : 16/03/2014

    [Resolvido]Consulta exclusão com base nas informações retornadas por outra consulta Empty Consulta exclusão com base nas informações retornadas por outra consulta

    Mensagem  Cleniroweb 17/3/2014, 02:18

    Noob,

    Uma outra condição que tentei foi criar uma segunda consulta com base na consulta que retorna-me os dados de exclusão desejados e a tabela, porém o access me retorna a seguinte mensagem; "especifique a tabela que contém os registros deseja excluir", ora, a tabela que desejo excluir os registros é a tabela "tb_Planilhao" e acredito já estar especificada abaixo, porém acho mesmo que o que impede é a instrução INNER JOIN.

    Nome da tabela: tb_Planilhao
    Nome da consulta que retorna os dados a excluir: Qry_Exporta_Titanic


    Consulta exclusão

    DELETE tb_Planilhao.Conta, tb_Planilhao.[Centro Dest], tb_Planilhao.[Data Contábil], tb_Planilhao.[Valor Transação], tb_Planilhao.Chave2
    FROM Qry_Exporta_Titanic INNER JOIN tb_Planilhao ON Qry_Exporta_Titanic.Valor = tb_Planilhao.[Valor Transação];


    Obrigado,
    Abs,
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Consulta exclusão com base nas informações retornadas por outra consulta Empty Re: [Resolvido]Consulta exclusão com base nas informações retornadas por outra consulta

    Mensagem  Avelino Sampaio 17/3/2014, 08:17

    Olá!

    Salve a sua primeira consulta sem qualquer alteração (qrySuaPrimeiraConsulta)
    Monte uma segunda Exclusão chamando pela primeira consulta

    DELETE * FROM qrySuaPrimeiraConsulta;

    Sucesso!



    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.
    Noobezinho
    Noobezinho
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4140
    Registrado : 29/06/2012

    [Resolvido]Consulta exclusão com base nas informações retornadas por outra consulta Empty Re: [Resolvido]Consulta exclusão com base nas informações retornadas por outra consulta

    Mensagem  Noobezinho 17/3/2014, 10:46

    Cleniro

    O Avelino escreveu em síntese o que eu tinha escrito em detalhes no primeiro post.

    O caminho é esse mesmo.

    Estamos aguardando retorno ^^

    Noob




    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...


    Ajude a ser ajudado:
    Seja objetivo na dúvida, dê os detalhes do que precisa, sem rodeios.
    Quando anexar teu projeto, diga onde está o problema, ganhamos mais tempo
    sem precisar procurar o mesmo.
    avatar
    Cleniroweb
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 71
    Registrado : 16/03/2014

    [Resolvido]Consulta exclusão com base nas informações retornadas por outra consulta Empty Consulta exclusão com base nas informações retornadas por outra consulta

    Mensagem  Cleniroweb 18/3/2014, 02:05


     Embarassed 
    Avelino / Noob,

    Fiz exatamente isso, porém o access ainda me retorna a seguinte mensagem; "Não foi possivel excluir ítens das tabelas especificadas", o que dá a entender que o access necessita de um nome de tabela para proceder com a exclusão.


    Código SQL da primeira consulta:

    SELECT Qry_planilhao.Conta, Qry_planilhao.[Data Contábil], Qry_planilhao.[Centro Dest], Qry_planilhao.Valor, Qry_planilhao.Chave2, Qry_planilhao.[Descr# Histórico / Detalhe da Ocorrência]
    FROM Qry_planilhao INNER JOIN Qry_Titanic ON Qry_planilhao.Chave2 = Qry_Titanic.Chave2
    GROUP BY Qry_planilhao.Conta, Qry_planilhao.[Data Contábil], Qry_planilhao.[Centro Dest], Qry_planilhao.Valor, Qry_planilhao.Chave2, Qry_planilhao.[Descr# Histórico / Detalhe da Ocorrência];


    Código SQL da segunda consulta (exclusão)

    DELETE * FROM Qry_Exporta_Titanic;
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Consulta exclusão com base nas informações retornadas por outra consulta Empty Re: [Resolvido]Consulta exclusão com base nas informações retornadas por outra consulta

    Mensagem  Avelino Sampaio 18/3/2014, 07:57

    Desculpa, pois consultas de agrupamento são somente de leitura (não aceitam edição ou exclusão).

    Monte uma consulta com esta parte:

    SELECT Qry_planilhao.Conta, Qry_planilhao.[Data Contábil], Qry_planilhao.[Centro Dest], Qry_planilhao.Valor, Qry_planilhao.Chave2, Qry_planilhao.[Descr# Histórico / Detalhe da Ocorrência]
    FROM Qry_planilhao INNER JOIN Qry_Titanic ON Qry_planilhao.Chave2 = Qry_Titanic.Chave2

    E então será possível uma outra consulta para exclusão.

    Sucesso!



    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.
    avatar
    Cleniroweb
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 71
    Registrado : 16/03/2014

    [Resolvido]Consulta exclusão com base nas informações retornadas por outra consulta Empty Consulta exclusão com base nas informações retornadas por outra consulta

    Mensagem  Cleniroweb 18/3/2014, 10:49


    Avelino,

    Já tentei essa possibilidade anteriormente, porém o access retorna a mensagem: "Especifique a tabela que contém os registros que você deseja excluir".

    Criei a consulta com a instrução SELECT do jeito que você colocou abaixo e a mesma consulta com a instrução DELETE.

    DELETE Qry_planilhao.Conta, Qry_planilhao.[Data Contábil], Qry_planilhao.[Centro Dest], Qry_planilhao.Valor, Qry_planilhao.Chave2, Qry_planilhao.[Descr# Histórico / Detalhe da Ocorrência]
    FROM Qry_planilhao INNER JOIN Qry_Titanic ON Qry_planilhao.Chave2 = Qry_Titanic.Chave2;
    Noobezinho
    Noobezinho
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4140
    Registrado : 29/06/2012

    [Resolvido]Consulta exclusão com base nas informações retornadas por outra consulta Empty Re: [Resolvido]Consulta exclusão com base nas informações retornadas por outra consulta

    Mensagem  Noobezinho 18/3/2014, 14:20

    Acredito que ainda não funciona por ainda se tratar de agrupamento de tabelas.

    Digamos que vc tenha salvo a primeira consulta como qrySuaPrimeiraConsulta.

    A consulta exclusão seria:

    DELETE tb_Planilhao.Conta FROM tb_Planilhao WHERE  tb_Planilhao.Conta = qrySuaPrimeiraConsulta.conta

    Dessa forma a consulta exclusão irá deletar  os registros da tb_Planilhao  que coincidirem com os registros retornados pela primeira consulta.

    Editando: Talvez seja necessário fazer um loop nos registros da primeira consulta para ir apagando  um a um. Só testando.

    Experimente, o caminho é por ai

    Noob


    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...


    Ajude a ser ajudado:
    Seja objetivo na dúvida, dê os detalhes do que precisa, sem rodeios.
    Quando anexar teu projeto, diga onde está o problema, ganhamos mais tempo
    sem precisar procurar o mesmo.
    avatar
    Cleniroweb
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 71
    Registrado : 16/03/2014

    [Resolvido]Consulta exclusão com base nas informações retornadas por outra consulta Empty Re: [Resolvido]Consulta exclusão com base nas informações retornadas por outra consulta

    Mensagem  Cleniroweb 18/3/2014, 16:40

    Noob,

    Fazendo desta forma, abre-se uma janela solicitando inserir o valor do parâmetro (Qry_Titanic.Chave2), onde se eu digitar um dado a ser excluído, irá acontecer a exclusão deste dado, seria possível fazer o loop de forma automática? Sem ficar digitando? Como ficaria?

    Veja abaixo como está o código da consulta exclusão:

    DELETE tb_Planilhao.Chave2
    FROM tb_Planilhao
    WHERE tb_Planilhao.Chave2 = Qry_Titanic.Chave2;

    Deixei anexo um exemplo do que necessito, onde possui uma tabela e duas consultas, uma mostrando os dados a excluir de forma sintética e a outra de forma analítica.

    Obrigado,
    Abraço,
    Cleniro.
     Embarassed
    Anexos
    [Resolvido]Consulta exclusão com base nas informações retornadas por outra consulta AttachmentBD_Planilhao.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (12 Kb) Baixado 18 vez(es)
    Noobezinho
    Noobezinho
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4140
    Registrado : 29/06/2012

    [Resolvido]Consulta exclusão com base nas informações retornadas por outra consulta Empty Re: [Resolvido]Consulta exclusão com base nas informações retornadas por outra consulta

    Mensagem  Noobezinho 20/3/2014, 22:46

    Cleniro

    Não esqueci de você, estou em outra cidade.
    Assim que puder eu entro em contato.

    Abraços

    Noob


    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...


    Ajude a ser ajudado:
    Seja objetivo na dúvida, dê os detalhes do que precisa, sem rodeios.
    Quando anexar teu projeto, diga onde está o problema, ganhamos mais tempo
    sem precisar procurar o mesmo.
    avatar
    Cleniroweb
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 71
    Registrado : 16/03/2014

    [Resolvido]Consulta exclusão com base nas informações retornadas por outra consulta Empty Re: [Resolvido]Consulta exclusão com base nas informações retornadas por outra consulta

    Mensagem  Cleniroweb 21/3/2014, 01:05

    Noob,

    Legal,

    Essa questão tá me tirando o sono.

    Abraço,

    Cleniro.
     bounce 
    Noobezinho
    Noobezinho
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4140
    Registrado : 29/06/2012

    [Resolvido]Consulta exclusão com base nas informações retornadas por outra consulta Empty Re: [Resolvido]Consulta exclusão com base nas informações retornadas por outra consulta

    Mensagem  Noobezinho 21/3/2014, 13:01

    Cleniro


    Eis o projeto alterado.

    Veja como eu fiz, espero que goste

    "Valor" é uma palavra reservada do Access, portanto não se pode usar em nome de controles,campos, porque irá causar problemas.
    Procure usar um prefixo nos nomes que criar:
    Ex.: qry_MinhaConsulta, tblMinhaTabela,txtMinhaCaixadeTexto, curValor (cur=currency=moeda), etc..

    Abraços

    Noob


    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...


    Ajude a ser ajudado:
    Seja objetivo na dúvida, dê os detalhes do que precisa, sem rodeios.
    Quando anexar teu projeto, diga onde está o problema, ganhamos mais tempo
    sem precisar procurar o mesmo.
    avatar
    Cleniroweb
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 71
    Registrado : 16/03/2014

    [Resolvido]Consulta exclusão com base nas informações retornadas por outra consulta Empty Consulta exclusão com base nas informações retornadas por outra consulta

    Mensagem  Cleniroweb 23/3/2014, 05:21

    Ilustre colega Noob,

    Até pensei no exemplo em que você me enviou, todavia precisava excluir os dados de forma automática, pois às vezes tenho mais de 1000 linhas a excluir e, de acordo com o eu exemplo, teria que entrar chave por chave, o que se tornaria inviável e foi então que minha ficha caiu:

    Como resolvi:

    Criei uma consulta "Criar tabela" baseada na consulta que havia feito para agrupar os dados dejedados para a exclusão de dados, posteriormente criei uma consulta exclusão comparando os campos iguais nestas duas tabelas com o seguinte código SQL;
    "DELETE Exists (SELECT *
    FROM tb_Titanic
    WHERE tb_Titanic.Chave2 = tb_Planilhao.Chave2
    ) AS Expr1, tb_Planilhao.Conta, tb_Planilhao.[Centro Dest], tb_Planilhao.[Valor Transação], tb_Planilhao.Chave2
    FROM tb_Planilhao
    WHERE (((Exists (SELECT *
    FROM tb_Titanic
    WHERE tb_Titanic.Chave2 = tb_Planilhao.Chave2
    ))<>False)); .

    Já no formulário principal, tenho um botão que realiza a importação de dados para a minha planilha tb_Planilhão e, nesse botão, coloquei o seguinte código VB: (DoCmd.OpenQuery "Atualiza_tb_Titanic") desta forma, quando clico no botão OK da mensagem "importação efetuada com sucesso", o access cria a tabela onde contém os dados a excluir e as atualiza. Também criei um botão no formulário para excutar a consulta de exclusão dos dados. O código acima onde compara os dados das duas tabelas, tirei de um exemplo deixado por um dos moderadores aqui do forum mas não estou conseguindo encontrá-lo, pois gostaria de poder registrar seu nome e agradecê-lo.

    Enfim, quero agradecer muito seu empenho em ter contribuido e me ajudado nesta empreitada.

    Sucesso e até mais,

    Obrigado,
    Cleniro.
    Noobezinho
    Noobezinho
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4140
    Registrado : 29/06/2012

    [Resolvido]Consulta exclusão com base nas informações retornadas por outra consulta Empty Re: [Resolvido]Consulta exclusão com base nas informações retornadas por outra consulta

    Mensagem  Noobezinho 24/3/2014, 11:29

    Cleniro

    Que bom que conseguiu !! bounce 

    É isso mesmo meu amigo, o criador do "monstro" é que sabe como ele vai se portar  Razz 

    Parabéns pela solução encontrada.

    Eu também já usei deste expediente a muito tempo.

    Se precisar, "tamos" ai

    Boa sorte

    Noob


    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...


    Ajude a ser ajudado:
    Seja objetivo na dúvida, dê os detalhes do que precisa, sem rodeios.
    Quando anexar teu projeto, diga onde está o problema, ganhamos mais tempo
    sem precisar procurar o mesmo.

    Conteúdo patrocinado


    [Resolvido]Consulta exclusão com base nas informações retornadas por outra consulta Empty Re: [Resolvido]Consulta exclusão com base nas informações retornadas por outra consulta

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 21/11/2024, 12:08