none
UpDate Access com Dados do Excel RRS feed

  • Pergunta

  • Boa tarde, Pessoal.

    Preciso importar uma tabela do excel e atualizar apenas os campos que foram alterados.

    Exemplo:
    Tenho essa Tabela no access 

    tblDados
    Data Localidade N° da PA Tipo de Solicitação Login Status Patrimônio Principal Status do Equip Principal Software
    23/02/2018 Belo Horizonte 965458 Instalação ( UpGrade ) 1111111 Aprovado 2222222 Ativo - Ligado Impressora
    23/02/2018 Rio de Janeiro 964841 Instalação (Crescimento) 1111111 Reprovada 2222222 Estoque Disponível Impressora
    23/02/2018 Rio de Janeiro 964839 Instalação (Crescimento) 1111111 Aprovado 2222222 Estoque Disponível Impressora
    23/02/2018 Rio de Janeiro 964833 Instalação (Crescimento) 1111111 Aprovado 2222222 Ativo - VPN Impressora
    23/02/2018 Recife 966037 Instalação (Crescimento) 1111111 Reprovada 2222222 Ativo - Ligado Impressora


    Quero importar essa mesma tabela abaixo do excel, porém com alguns campos atualizados.
    Preciso que faça essa atualização na tabela atual do access.

    <tfoot></tfoot> Impressora
    Excel
    Data Localidade N° da PA Tipo de Solicitação Login Status Patrimônio Principal Status do Equip Principal Software
    23/02/2018 Belo Horizonte 965458 Instalação ( UpGrade ) 1111111 Aprovado 2222222 Ativo - Ligado Impressora
    23/02/2018 Rio de Janeiro 222222 Instalação (Crescimento) 1111111 Reprovada 2222222 Estoque Disponível Impressora
    23/02/2018 Rio de Janeiro 333333 Instalação (Crescimento) 1111111 Aprovado 2222222 Estoque Disponível Impressora
    23/02/2018 Rio de Janeiro 444444 Instalação (Crescimento) 1111111 Aprovado 2222222 Ativo - VPN Impressora
    23/02/2018 Recife 966037 Instalação (Crescimento) 1111111 Reprovada 2222222 Ativo - Ligado Impressora

    Campos alterados N° da PA: 222222 , 333333 , 444444


    • Editado PauloRSantos sexta-feira, 23 de fevereiro de 2018 19:00
    sexta-feira, 23 de fevereiro de 2018 17:11

Todas as Respostas

  • Este primeiro exemplo, a macro importa os dados do access e insere no Excel.

    No segundo atualiza os dados  no access. Veja se consegue adaptar, alterando os valores das variaveis de acordo com o seu cenário.

    Marque a referencia: Microsoft activeX data objects x.xx library 

    Para importar do access: 

    Dim nConn As New ADODB.Connection

    Sub selecionar_access() Dim banco As ADODB.Recordset Dim sql As String 'O COMANDO PARA SELECIONAR DADOS É O SELECT sql = "SELECT * FROM FUNCIONARIOS" 'O ASTERISCO INDICA QUE TODAS AS COLUNAS SERÃO TRAZIDAS Set banco = New ADODB.Recordset Conectar On Error GoTo erro banco.Open sql, nConn Dim xls As Excel.Worksheet Set xls = Sheets("Plan1") 'GRAVA OS DADOS NA PLANILHA PLAN2 NA CÉLULA A2 xls.Range("A2").CopyFromRecordset banco Desconectar Set banco = Nothing Exit Sub erro: MsgBox Err.Description cx.Desconectar Set banco = Nothing End Sub

    Public Sub Conectar()
        Dim nConectar As String
        
        If Val(Application.Version) < 12 Then
             nConectar = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
                                            "Data Source=" & ThisWorkbook.Path & "\NOME_DO_SEU_BANCO.accdb"
        Else
             nConectar = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                                            "Data Source=" & ThisWorkbook.Path & "\NOME_DO_SEU_BANCO.mdb"
        End If
        
        nConn.ConnectionString = nConectar
        nConn.Open
        
    End Sub

    Public Sub Desconectar()

        nConn.Close
        
    End Sub

    Para atualizar os dados no access: 

    Sub Alterar_Access()
        
        Dim banco As ADODB.Recordset
        Dim sql      As String
        
        'O COMANDO PARA ALTERAR DADOS É O UPDATE
        sql = "UPDATE FUNCIONARIOS" & _
            " SET CARGO = 'GERENTE'" & _
            ", SALARIO = '5.456,43'" & _
            " WHERE MATRICULA = 1" 'UTILIZEI A CLÁUSULA WHERE NA COLUNA MATRICULA PARA
            'ESPECIFICAR QUAL REGISTRO DEVE SER ALTERAR, CASO NÃO FAÇA ISSO, AS COLUNA
            'DE TODOS OS REGISTROS SERÃO ALTERADOS.
            
        Set banco = New ADODB.Recordset
        
        Conectar
        
        On Error GoTo erro
        banco.Open sql, nConn
        
        MsgBox "Dados alterados com sucesso"
        
        Desconectar
        Set banco = Nothing
        Exit Sub
    erro:
        MsgBox Err.Description
        Desconectar
        Set banco = Nothing
        
    End Sub
    



    Click em propor como resposta se foi util a voce. ricardodm@outlook.com.br

    sexta-feira, 23 de fevereiro de 2018 19:44