MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    Insert Into Tb1 com critério Between entre Tb2 e Tb3

    Compartilhe

    asimoes
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 61
    Registrado : 30/04/2013

    Insert Into Tb1 com critério Between entre Tb2 e Tb3

    Mensagem  asimoes em Qua 17 Dez 2014, 13:47

    Ola Pessoal,
    Alguém poderia por gentileza me ajudar com problema abaixo?

    Como faço um INSET INTO que insere na Tab_Pendencia, o que ñ está cadastrado na Tab_CadAnaliseLiberada ex:
    Tab_CadAnaliseHistórico tenho a Enc 15000 Unid 1, 2 e 3 (Considerando como Enc 15000 unid 1 à 3).

    Enc
    15000
    15000
    15000
    15001
    15002
    15003
    Unid
    1
    2
    3
    1
    1
    1

    E na Tab_CadAnaliseLiberada eu Tenho a Enc 15000 Unid Inicio 1, Unid Fim 2.

    Encomenda
    15000
    15001
    15002
    Unid Inicio
    1
    1
    2
    Unid Fim
    2
    1
    3

    Então tenho cadastrado a Enc 15500 Unid 1 à 2, faltando a Unid 3 (Posteriormente quando eu cadastrar ficara na tabela assim:

    Encomenda
    15000
    Unid Inicio
    3
    Unid Fim
    3

    O que eu preciso é um INSERT INTO na tabela Tab_Pendencia inserindo pendências da Tab_CadAnaliseLiberada com base na Tab_CadAnaliseHistórico que ficaria assim:

    Enc
    15000
    15002
    15003
    Unid
    3
    1
    1

    A 15503 entrou porque ela não consta na Tab_CadAnaliseLiberada.


    Tentei de varias maneiras, o que se aproxima mais é o SQL abaixo, mais ainda ñ antendeu!


    Código:
     CurrentDb.Execute "INSERT INTO [Pendências] ( Enc, Unid )" _
     & "SELECT [Programação histórico].Enc, [Programação histórico].Unid " _
     & "FROM [Programação histórico], CadAnaliseLiberada " _
     & "WHERE ((([Programação histórico].Unid) not Between [CadAnaliseLiberada].[Unid Inicio] And [CadAnaliseLiberada].[Unid Fim]));"


    .................................................................................
    Não tenho medo de compartilhar conhecimento.
    Essa é a unica coisa que as pessoas não poderão roubar de mim, pois ninguém nunca sabe igual, mesmo que saiba a mesma coisa.

    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 5889
    Registrado : 05/11/2009

    Re: Insert Into Tb1 com critério Between entre Tb2 e Tb3

    Mensagem  Alexandre Neves em Qua 17 Dez 2014, 22:19

    Boa noite,
    Parece-me que devia ter as tabelas melhor estruturadas. No entanto e contando que as unidades já registadas estão em ordem sequencial, o código seguinte funcionará.
    CurrentDb.Execute "INSERT INTO [Pendências] (Enc, Unid )" _
    & "SELECT [Programação histórico].Enc, [Programação histórico].Unid " _
    & "FROM [Programação histórico] LEFT JOIN CadAnaliseLiberada ON [Programação histórico].Enc=CadAnaliseLiberada.Encomenda " _
    & "WHERE [Programação histórico].Unid not Between [CadAnaliseLiberada].[Unid Inicio] And [CadAnaliseLiberada].[Unid Fim];"

    Se não funcionar, informe em que situações isso acontece


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo

    asimoes
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 61
    Registrado : 30/04/2013

    Re: Insert Into Tb1 com critério Between entre Tb2 e Tb3

    Mensagem  asimoes em Qui 18 Dez 2014, 11:02

    Ola, Alexandre!


    Então, ainda não deu certo! pra você ver melhor o que está ocorrendo segue abaixo,

    Se colocar as informações na tabela histórico como abaixo:

    Enc
    15002
    15002
    15002
    15003
    Unid
    1
    3
    2
    1

    e na tabela cadastro de analise como abaixo:

    Encomenda
    15002
    15002
    Unid Inicio
    1
    2
    Unid Fim
    1
    3

    o código a insere as informações na tabela Pendencias conforme abaixo:

    Enc
    15002
    15002
    15002
    Unid
    1
    3
    2
    e também a Enc 15003 está no histórico e não está na Tabela de analise liberada, porem não foi incluída na tabela de Pendências!


    "detalhe nem sempre as unidades já registadas estão em ordem sequencial, mas se for necessário, coloco um "order by" antes de executar o procedimento."


    Alexandre, muito obrigado a ajuda!


    .................................................................................
    Não tenho medo de compartilhar conhecimento.
    Essa é a unica coisa que as pessoas não poderão roubar de mim, pois ninguém nunca sabe igual, mesmo que saiba a mesma coisa.

      Data/hora atual: Qui 08 Dez 2016, 14:08