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

    Compara tabelas de dois bancos actualizar ou inserir dados se não existirem

    Compartilhe

    JC123
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 1
    Registrado : 30/08/2017

    Compara tabelas de dois bancos actualizar ou inserir dados se não existirem

    Mensagem  JC123 em Sex 24 Ago 2018, 11:57

    Bom dia estou com algumas duvidas e precisava da vossa ajuda.
    Tenho dois ficheiros que preciso de os unir eles têm as mesmas tabelas o que pretendia era criar um 3 ficheiro que unisse a informação dos outros dois ficheiros.
    A minha duvida não é na união mas sim quando existe uma actualização num determinado campo.


    Para tal estou a usar o código do Jp  com as devidas alterações para o meu ficheiro mas aqui se o registo já existir ele não faz actualização, já tentei usar o UPDATE mas sem sucesso. Alguém consegue ajudar?

    Public Function ComparaImportaDadosNaoExistentes()
    '@jpaulo 2017-10-10
    '[Você precisa estar registrado e conectado para ver este link.]
    '
    'ESTE CÓDIGO DEVE SER INSERIDO NUM MÓDULO
    '******* ALTERAR APENAS O CAMINHO DO BANCO EXTERNO E NOME ********
    '
    'ESTE CÓDIGO NÃO PERMITE DUPLICAÇÃO DE DADOS
    'APENAS INSERE DADOS NÃO EXISTENTES EM TABELAS IGUAIS

    Dim sTable As String
    Dim strSQL As String
    Dim db As DAO.Database
    Dim tdf As DAO.TableDef
    Dim namedir As String

    On Error GoTo 1
    Set db = OpenDatabase("C:\xxxxx\xxx\xxxx\xxxxxx.accdb")
    namedir = CurrentProject.Path & "\" & Application.CurrentProject.Name

    For Each tdf In db.TableDefs

    If Not (tdf.Name Like "MSys*" Or tdf.Name Like "~*") Then
           sTable = tdf.Name
           strSQL = "INSERT INTO ${sTable} SELECT * FROM [MS Access;DATABASE=" & namedir & ";].[${stable}]"
           strSQL = Replace(strSQL, "${sTable}", sTable, 1, -1, vbTextCompare)
           
           db.Execute strSQL

    End If
    Next
       MsgBox "Dados Compilados...", vbInformation
    Set db = Nothing
    Exit_1:
       DoCmd.Hourglass False
       DoCmd.Echo True
       Exit Function

    1:
       DoCmd.Hourglass False
       DoCmd.Echo True
       Dim Msg$
       Msg = "Erro # " & Str(Err.Number) & " gerado na " & Err.Source _
           & vbNewLine & vbNewLine & "Descrição: " & Err.Description _
           & vbNewLine & vbNewLine & "Por favor strConecttate o Administrador do Sistema."
       MsgBox Msg, vbMsgBoxHelpButton + vbCritical, "Erro"
       Resume Exit_1
    End Function
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: Compara tabelas de dois bancos actualizar ou inserir dados se não existirem

    Mensagem  Alexandre Neves em Sex 24 Ago 2018, 20:21

    Boa noite e bem-vindo ao fórum
    Movi-lhe a dúvida para esta sala. A sala de repositório não serve para tirar dúvidas.
    Leia as regras e cumpra-as
    Bom proveito do fórum


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

      Data/hora atual: Seg 22 Out 2018, 10:26