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]Selecionar registros de uma tabela com base em campos de outra tabela

    Compartilhe
    avatar
    asimoes
    Intermediário
    Intermediário

    Respeito às Regras 100%

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

    [Resolvido]Selecionar registros de uma tabela com base em campos de outra tabela

    Mensagem  asimoes em 12/5/2016, 01:17

    Ola Pessoal,

    Alguém sabe como faço um select que me traga os registros de uma tabela com base em campos de outra tabela?

    Ex:

    tenho duas tabelas como abaixo:

    EncomendaLiberadas-Pedidos
    Enc             De          Até
    30185          25          30
    16237          25          30
    88888          8            9
    99999          9            10
    77777          1            2
    30185          21          24
    16351          3            3

    Alterações de Programação
    Enc             Unid
    16351          1
    16351          2
    30188          11
    30185          25

    O select tem que trazer os registros que estão tabela "Alterações de Programação" e não estão na tabela "EncomendaLiberadas-Pedidos" usando como criterio o campo "Enc" e "Unid" da tabela "Alterações de Programação" com "Enc", "De" e "Até" da tabela "EncomendaLiberadas-Pedidos".

    O resultado do select teria que ser:

    Enc             Unid
    16351          1
    16351          2
    30188          11


    O sql que estou usando e não está dando certo é:

    CurrentDB.Execute "SELECT * FROM [Alterações de Programação] " _
                          & "WHERE NOT EXISTS (SELECT [EncomendasLiberadas-Pedidos].Enc " _
                          & "FROM [EncomendasLiberadas-Pedidos] " _
                          & "WHERE [Alterações de Programação].Enc = [EncomendasLiberadas-Pedidos].Enc " _
                          & "AND [Alterações de Programação].Unid BETWEEN [EncomendasLiberadas-Pedidos].De " _
                          & "AND [EncomendasLiberadas-Pedidos].Até)"

    Alguém sabe como faço isso?


    .................................................................................
    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.
    avatar
    Dilson
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1707
    Registrado : 11/11/2009

    Re: [Resolvido]Selecionar registros de uma tabela com base em campos de outra tabela

    Mensagem  Dilson em 12/5/2016, 15:46

    Experimente:

    SELECT *
    FROM [Alterações de Programação] AS A
    WHERE NOT EXISTS (
       SELECT * FROM [EncomendaLiberadas-Pedidos]  As E
       WHERE
           A.Enc = E.Enc AND
           A.Unid BETWEEN E.De AND E.Ate);

    avatar
    asimoes
    Intermediário
    Intermediário

    Respeito às Regras 100%

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

    Re: [Resolvido]Selecionar registros de uma tabela com base em campos de outra tabela

    Mensagem  asimoes em 12/5/2016, 23:45

    Ola Dilson,

    Não deu cara ao executar da o erro em anexo

    [Você precisa estar registrado e conectado para ver esta imagem.]


    .................................................................................
    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.
    avatar
    asimoes
    Intermediário
    Intermediário

    Respeito às Regras 100%

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

    Re: [Resolvido]Selecionar registros de uma tabela com base em campos de outra tabela

    Mensagem  asimoes em 13/5/2016, 01:24

    Consegui resolver o problema desta forma

    "SELECT * FROM [Alterações de Programação] " _
    & "INNER JOIN [EncomendasLiberadas-Pedidos] " _
    & "ON [Alterações de Programação].Enc = [EncomendasLiberadas-Pedidos].Enc " _
    & "WHERE [Alterações de Programação].Enc = [EncomendasLiberadas-Pedidos].Enc " _
    & "AND [Alterações de Programação].Unid BETWEEN [EncomendasLiberadas-Pedidos].De " _
    & "AND [EncomendasLiberadas-Pedidos].Até"

    Muito Obrigado pela força Dilson!


    .................................................................................
    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.
    avatar
    Dilson
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1707
    Registrado : 11/11/2009

    Re: [Resolvido]Selecionar registros de uma tabela com base em campos de outra tabela

    Mensagem  Dilson em 13/5/2016, 13:33

    O erro informa a falta de fonte de registro e pode ocorrer se as tabelas não estiverem relacionadas na propriedade Fonte de Registro do formulário. pelo que não interessa mais, porque já resolveu de outra maneira.

    Obrigado por informar a forma que resolveu, com certeza servirá no futuro à alguém.

    O Fórum agradece



      Data/hora atual: 22/10/2018, 22:12