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

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

    avatar
    JC123
    Novato
    Novato


    Respeito às regras : 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 Empty Compara tabelas de dois bancos actualizar ou inserir dados se não existirem

    Mensagem  JC123 24/8/2018, 12: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
    'www.maximoaccess.com
    '
    '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
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  Alexandre Neves 24/8/2018, 21: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: 29/4/2024, 13:02