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


2 participantes

    Realizar comparação com tabelas antes de inserir os dados.

    Novato_access
    Novato_access
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 16
    Registrado : 23/03/2018

    Realizar comparação com tabelas antes de inserir os dados. Empty Realizar comparação com tabelas antes de inserir os dados.

    Mensagem  Novato_access 28/6/2018, 12:45

    Pessoal, gostaria de resolver o seguinte problema:

    1 - Tenho 2 tabelas:

    Tabela - TB_Dados

    Produto | CodNP | Criado | Situacao | TB_Verifica
    Teste1 | 1.1-2 | 28/06/2018 | Analise | Teste1,28/06/2018,10:00
    Teste2 | 1.5-3 | 28/06/2018 | Analise | Teste2,28/06/2018,11:00
    Teste3 | 2.8-2 | 28/06/2018 | Analise | Teste3,28/06/2018,10:00

    Tabela - Base_D

    CodNP | Situacao |
    1.1-2 | Analise |
    1.5-3 | Analise |
    2.8-2 | Analise |


    2 - Busco as informações do servidor da empresa que esses são inseridos na tabela "TB_Dados" porém tem alguns CodNP que não era para ser inseridos na tabela e estou tentando fazer com que antes de adicionar os dados na tabela o CodNP que está vindo do servidor verificar na tabela "Base_D", caso esse CodNP tenha vai adicionar na tabela "TB_Dados" e se não tiver não adicionar.

    Observações:

    O CodNP é a junção do db_Cd-do-CP e db_NP-CP que vem do servidor.
    Ex: db_Cd-do-CP = "1.5" e db_NP-CP = "3" juntando os dois fica "1.5-3" na tabela.

    Esse SQL: ("SELECT * FROM [TB_Dados] WHERE NOT Situacao = 'EncN2' AND TB_Verifica = '" & rsADO!Produto & "," & Format(rsADO("Realizado-em_date"), "dd/mm/yyyy,hh:mm") & "'"
    Serve para não repetir o mesmo Produto com a mesma data e hora pois quero que repita apenas os que a hora for diferente.

    Esse SQL: ("SELECT * FROM [Base_D] WHERE CodNP = '" & rsADO("db_Cd-do-CP") & "--" & rsADO("db_NP-CP") & "'")
    Seria para fazer a verificação dos CodNP que possui na Tabela Base_D e adicionar na tabela TB_Dados.

    Os 2 SQL estão corretos pois se deixar apenas 1 consegui realizar a verificação e inserir os dados, o problema é que não sei organizar para fazer essas duas verificação antes de inserir os dados.
    Segue abaixo o SQL que desejo alterar:


    Do While Not rsADO.EOF

    Set db = CurrentDb()

    LocalSQL = "SELECT * FROM [Base_D] WHERE CodNP = '" & rsADO("db_Cd-do-CP") & "--" & rsADO("db_NP-CP") & "'"
    Set sr = db.OpenRecordset(LocalSQL)

    LocalSQL = "SELECT * FROM [TB_Dados] WHERE NOT Situacao = 'EncN2' AND TB_Verifica = '" & rsADO!Produto & "," & Format(rsADO("Realizado-em_date"), "dd/mm/yyyy,hh:mm") & "'"
    Set sr = db.OpenRecordset(LocalSQL)

    If sr.EOF Then
    sr.AddNew
    Else
    sr.Edit
    End If

    sr!Produto = "" & rsADO!Produto
    sr!Criado = "" & Format(rsADO("Realizado-em_date"), "dd/mm/yyyy")
    sr!Situacao = "EncN2"
    sr!CodNP = "" & rsADO("db_Cd-do-CP") & "--" & rsADO("db_NP-CP")
    sr!TB_Verifica = "" & rsADO!Produto & "," & Format(rsADO("Realizado-em_date"), "dd/mm/yyyy,hh:mm")

    sr.Update
    avatar
    delsonk
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 203
    Registrado : 26/11/2013

    Realizar comparação com tabelas antes de inserir os dados. Empty Re: Realizar comparação com tabelas antes de inserir os dados.

    Mensagem  delsonk 2/7/2018, 19:29

    Prezado colega,

    Caso eu tenha entendido bem o seu problema, sugiro que você tente o seguinte:
    1. Crie uma tabela (ex: TB_Teste) com os mesmos campos que você tem na tabela Base_D.
    2. Baseado no código SQL que você já possui, insira os dados na TB_Teste e depois faça a comparação para verificar se esse CodNP existe na tabela Base_D. Caso existir, insere na TB_Dados; caso não existir não insere os dados na tabela TB_Dados.
    2. Sempre antes de iniciar o procedimento do item 1., via código SQL, exclua todos os dados da TB_Teste para que não haja duplicação de dados vindos do servidor.

    Bons estudos, Delson

      Data/hora atual: 29/3/2024, 01:04