Importar Tabela Access - Abrir e fechar conexão

Processos de importação e exportação de dados, interação entre o Excel e demais softwares, interface com Banco de dados, SQL.

Importar Tabela Access - Abrir e fechar conexão

Mensagempor JPerez » Ter Fev 26, 2019 9:46 pm

Amigos, boa noite

Tenho um banco simples no access, mas ao tentar fazer um relatório não consigo importar a tabela através de VBA.
Se eu fizer através da conexão de dados, o access fica aberto impedindo dos usuários fazerem a mesma alimentar.

ate peguei esse código aqui, so que aonde esta em vermelho aparece o depurar: Erro de execução 13 - Tipos incompatíveis

Alguem consegue me ajudar ?? ou algum outro código simples so para importar a tabela do access, abrir e fechar conexão.

Código: Selecionar todos
Public Conexao As New ADODB.Connection
Public Rst As New ADODB.Recordset

Sub Conecta()
Set Conexao = New ADODB.Connection
    With Conexao
        .Provider = "Microsoft.ACE.OLEDB.12.0"
        .ConnectionString = "C:\Users\jose_\Downloads\BDPC.accdb"
        .Open
    End With
End Sub

Sub Desconectar()

Set Conexao = Nothing
Set Rst = Nothing


End Sub

Sub Salvar_Banco()
Application.ScreenUpdating = False
Dim r As String
Dim j
Call Conecta
Set Rst = New ADODB.Recordset


With Rst
       
        Rst.Open "select * from Consulta_Tv", Conexao, adOpenKeyset, adLockOptimistic, adCmdText


End With

If Rst.EOF = False Then
                   
         With Planilha1
            .Activate
           
            ' LIMPA TODOS OS DADOS DA ABA
            .Range("A1:M1048576").Cells.Clear
           
            Rst.MoveFirst
           
            'INSERE OS NOMES DOS CAMPOS DA TABELA
            For j = 0 To Rst.Fields.Count - 1
                .Cells(1, j + 1).Value = Rst(j).Name
                .Cells(1, j + 1).Interior.ColorIndex = 15 ' COR CINZA
                .Cells(1, j + 1).Font.Bold = True
            Next j
           
            'INSERE OS DADOS IMPORTADOS DA TABELA
            Do While Rst.EOF = False
               
            For j = 0 To Rst.Fields.Count - 1
               [color=#FF4000] .Cells(r, j + 1).Value = Rst(j).Value[/color]
                Next j
               
                Rst.MoveNext
                r = r + 1
            Loop
           
        End With



Rst.Close
Conexao.Close
End If
   
    If r > 2 Then MsgBox (r - 2) & " registro importados com Sucesso!"
   
End Sub
JPerez
Membro
Membro
 
Mensagens: 267
Registrado em: Qua Mai 12, 2010 12:24 am
Has thanked: 33 times
Have thanks: 4 times

{ SO_SELECT }

Re: Importar Tabela Access - Abrir e fechar conexão

Mensagempor Reinaldo » Qua Fev 27, 2019 10:50 am

Assim fica dificil, mas a variavel "r" está definida como String(texto) e está sendo utilizada como numero de linha (...Cells(r, j...) inclusive sem ser iniciada (r=1 por exemplo). Talvez ai resida o problema redefina como Integer ou Long e incialize a mesma.
Reinaldo
Gostou da resposta? Clique no ícone "Positivo" da mensagem!(ao lado de citar)
Avatar do usuário
Reinaldo
Expert
Expert
 
Mensagens: 4327
Registrado em: Sáb Dez 19, 2009 9:59 am
Localização: Garça - SP / SCS - SP
Has thanked: 194 times
Have thanks: 1992 times

Re: Importar Tabela Access - Abrir e fechar conexão

Mensagempor JPerez » Qua Fev 27, 2019 9:44 pm

Boa noite....

Agradeço a ajuda... consegui com outro código...
Vou postar aqui

Código: Selecionar todos
Sub Salvar_Banco()
Application.ScreenUpdating = False
Dim Linha As String
Call Conecta
Set Rst = New ADODB.Recordset
COL = 1

Rst.Open "select * from TB_Projetos", Conexao, adOpenKeyset, adLockOptimistic, adCmdText
   

     If Not Rst.EOF Then
        For Each FD In Rst.Fields
            Sheets("Planilha1").Cells(1, COL).Value = FD.Name
            COL = COL + 1
        Next FD

        COL = 1
        ThisWorkbook.Sheets("Planilha1").Cells(2, COL).CopyFromRecordset Rst
       
    End If

End Sub
JPerez
Membro
Membro
 
Mensagens: 267
Registrado em: Qua Mai 12, 2010 12:24 am
Has thanked: 33 times
Have thanks: 4 times


Voltar para Integração Excel & Access

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

cron