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

    Insert no ACCESS com problema

    Compartilhe

    Marcio2501
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 24
    Registrado : 24/10/2016

    Insert no ACCESS com problema

    Mensagem  Marcio2501 em 30/3/2017, 19:25

    Pessoal, boa tarde !

    Tudo bem?

    Estou tentanto fazer um inserte de uma tabela "temp" chamada ("mailing_temp") para uma tabela principal chamada ("BD_2017") de apenas dados que não existe na tabela principal usando o método NOT IN. Entretanto com muitos dados na tabela principal o inserte não esta acontecendo. Fiz alguns testes, o código para pouco linhas na tabela principal faz o comando, com muito dados ele dispara mas não acontece nada. Gostaria que alguém pudesse me ajudar ou com uma solução diferente ou identificar algo no código abaixo:

    "INSERT INTO BD_2017 (CODIGO,CONTATO,CNPJ,CPF,RAZAO_SOCIAL,TEL,TEL_CONTATO, TEL_CONTATO2,TEL_2,TEL_3,ER,PORTE,GUID_ID,MUNICIPIO,PROTOCOLO,E_MAIL,OFERTA_1,OFERTA_2,OFERTA_3,CF_Date, CF_Hour,CF_AgentId,CF_AgentName,CF_Group,CF_Code,CF_Detail,CF_Text,CF_TextDetail,CF_TextDetail1,STATUS_1,STATUS_2)

    SELECT CODIGO,CONTATO,CNPJ,CPF,RAZAO_SOCIAL,TEL,TEL_CONTATO, TEL_CONTATO2,TEL_2,TEL_3,ER,PORTE,GUID_ID,MUNICIPIO,PROTOCOLO,E_MAIL,OFERTA_1,OFERTA_2,OFERTA_3,CF_Date, CF_Hour,CF_AgentId,CF_AgentName,CF_Group,CF_Code,CF_Detail,CF_Text,CF_TextDetail,CF_TextDetail1,STATUS_1,STATUS_2

    FROM MAILING_TEMP

    WHERE (((MAILING_TEMP.CPF) NOT IN (SELECT CPF FROM BD_2017)));"


    Obrigado.

    misaelsp
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 96
    Registrado : 20/02/2013

    Re: Insert no ACCESS com problema

    Mensagem  misaelsp em 3/4/2017, 17:09

    A instrução Select tem que estar antes da InsertInto


    .................................................................................
    É fazendo que se aprende a fazer aquilo que se deve aprender a fazer [Você precisa estar registrado e conectado para ver esta imagem.]
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: Insert no ACCESS com problema

    Mensagem  Alexandre Neves em 4/4/2017, 19:58

    Boa tarde,
    Crie cópia da tabela e teste
    1 - crie código cpf em falta para ver se funciona
    "INSERT INTO BD_2017 (Codigo) SELECT Codigo FROM Mailing_Temp WHERE Mailing_Temp.CPF) NOT IN (SELECT CPF FROM BD_2017);"

    2 - actualize restantes dados
    "UPDATE BD_2017 LEFT JOIN Mailing_Temp ON BD_2017.CPF=Mailing_Temp.CPF SET BD_2017.CODIGO=Mailing_Temp.CODIGO,BD_2017.CONTATO=Mailing_Temp.CONTATO,BD_2017.CNPJ=Mailing_Temp.CNPJ,BD_2017.RAZAO_SOCIAL=Mailing_Temp.RAZAO_SOCIAL,BD_2017.TEL=Mailing_Temp.TEL,BD_2017.TEL_CONTATO=Mailing_Temp.TEL_CONTATO, BD_2017.TEL_CONTATO2=Mailing_Temp.TEL_CONTATO2,BD_2017.TEL_2=Mailing_Temp.TEL_2,BD_2017.TEL_3=Mailing_Temp.TEL_3,BD_2017.ER=Mailing_Temp.ER,BD_2017.PORTE=Mailing_Temp.PORTE,BD_2017.GUID_ID=Mailing_Temp.GUID_ID,BD_2017.MUNICIPIO=Mailing_Temp.MUNICIPIO,BD_2017.PROTOCOLO=Mailing_Temp.PROTOCOLO,BD_2017.E_MAIL=Mailing_Temp.E_MAIL,BD_2017.OFERTA_1=Mailing_Temp.OFERTA_1,BD_2017.OFERTA_2=Mailing_Temp.OFERTA_2,BD_2017.OFERTA_3=Mailing_Temp.OFERTA_3,BD_2017.CF_Date=Mailing_Temp.CF_Date, BD_2017.CF_Hour=Mailing_Temp.CF_Hour,BD_2017.CF_AgentId=Mailing_Temp.CF_AgentId,BD_2017.CF_AgentName=Mailing_Temp.CF_AgentName,BD_2017.CF_Group=Mailing_Temp.CF_Group,BD_2017.CF_Code=Mailing_Temp.CF_Code,BD_2017.CF_Detail=Mailing_Temp.CF_Detail,BD_2017.CF_Text=Mailing_Temp.CF_Text,BD_2017.CF_TextDetail=Mailing_Temp.CF_TextDetail,BD_2017.CF_TextDetail1=Mailing_Temp.CF_TextDetail1,BD_2017.STATUS_1=Mailing_Temp.STATUS_1,BD_2017.STATUS_2=Mailing_Temp.STATUS_2 WHERE NOT IsNull(Mailing_Temp.CPF)


    .................................................................................
    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

    Marcio2501
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 24
    Registrado : 24/10/2016

    Re: Insert no ACCESS com problema

    Mensagem  Marcio2501 em 6/4/2017, 20:18

    Alexandre, blz?

    Como eu criaria um indice para que os códigos da tabela Mailing_temp respeitasse a hierarquia dos ID´s criado na tabela BD_2017?

    Acho  q só assim funcionaria usando esse update... pois a tabela temp seria temporária então quando eu apagasse a tabela e colocasse novos registros pode ser q o código =1 na temp não seja "o registro" do código =1 na tabela BD_2017, mas ele comparando não faria o inserte por questão do ID.

    obrigado.
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: Insert no ACCESS com problema

    Mensagem  Alexandre Neves em 6/4/2017, 22:20

    Boa noite
    Na 1ª instrução que lhe passei, ele só adiciona registos que ainda não existam CPF na tabela BD_2017

    Na 2ª instrução, ele só vai actualizar esses registos, pois só esses registos existem na tabela Mailing_Temp

    Veja se funciona ou quais os problemas ocorridos


    .................................................................................
    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

    Marcio2501
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 24
    Registrado : 24/10/2016

    Re: Insert no ACCESS com problema

    Mensagem  Marcio2501 em 10/4/2017, 16:14

    Aconteceu a mesma coisa... pra quantidade de registros (50.000 vs 50.000) na primeira rotina ele já não roda o procedimento.

    Vou ter q pensar alguma coisa como delimitador ou fazer por VBA o que tbm acredito que vai demorar uma eternidade.
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: Insert no ACCESS com problema

    Mensagem  Alexandre Neves em 21/4/2017, 19:58

    Boa tarde,
    Dê retorno sobre a dúvida


    .................................................................................
    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

    Marcio2501
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 24
    Registrado : 24/10/2016

    Re: Insert no ACCESS com problema

    Mensagem  Marcio2501 em 24/4/2017, 18:01

    solução não deu certo conforme citado acima
    [...]´s

      Data/hora atual: 16/11/2018, 10:16