Boa tarde pessoal.
Estou com uma macro que deve jogar dados do excel para um banco access, porém dá o erro de Dados Incompatíveis. Alguém pode me ajudar?
Sub TransfereDados()
'Cria variável que armazena os comandos SQL
Dim ComandoSQL As String
'looping das colunas
Sheets("BaseGeral").Select
Range("A2").Activate
'lopping das linhas
Do While ActiveCell <> ""
linha = ActiveCell.Row
'Armazena na variável o comando que fará a consulta SQL no BD Access
ComandoSQL = "select * from TB_Base_Banco_geral"
'Chama a rotina que faz a conexão com o BD
Call Conecta
'Atribui a variável de Objeto de BD a execução dos comandos SQL
Set consulta = banco.OpenRecordset(ComandoSQL) - O Erro acontece nessa linha
With consulta
'Abre o Recordset do BD para inserção
.AddNew
.Fields("Contratada") = Sheets("BaseGeral").Cells(linha, 1)
.Fields("OS") = Sheets("BaseGeral").Cells(linha, 2)
.Fields("Tecnologia") = Sheets("BaseGeral").Cells(linha, 3)
.Fields("Sistema") = Sheets("BaseGeral").Cells(linha, 4)
'Se houver erro
On Error Resume Next
'Efetiva a atualização do BD
.Update
'Fecha o Recorset e a conexão com o BD
consulta.Close
banco.Close
'Chama a rotina que desconecta do BD (libera variáveis objeto de BD)
Call Desconecta
ActiveCell.Offset(1, 0).Select
End With
Loop
'Abandona a subrotina
Exit Sub
End Sub
Estou com uma macro que deve jogar dados do excel para um banco access, porém dá o erro de Dados Incompatíveis. Alguém pode me ajudar?
Sub TransfereDados()
'Cria variável que armazena os comandos SQL
Dim ComandoSQL As String
'looping das colunas
Sheets("BaseGeral").Select
Range("A2").Activate
'lopping das linhas
Do While ActiveCell <> ""
linha = ActiveCell.Row
'Armazena na variável o comando que fará a consulta SQL no BD Access
ComandoSQL = "select * from TB_Base_Banco_geral"
'Chama a rotina que faz a conexão com o BD
Call Conecta
'Atribui a variável de Objeto de BD a execução dos comandos SQL
Set consulta = banco.OpenRecordset(ComandoSQL) - O Erro acontece nessa linha
With consulta
'Abre o Recordset do BD para inserção
.AddNew
.Fields("Contratada") = Sheets("BaseGeral").Cells(linha, 1)
.Fields("OS") = Sheets("BaseGeral").Cells(linha, 2)
.Fields("Tecnologia") = Sheets("BaseGeral").Cells(linha, 3)
.Fields("Sistema") = Sheets("BaseGeral").Cells(linha, 4)
'Se houver erro
On Error Resume Next
'Efetiva a atualização do BD
.Update
'Fecha o Recorset e a conexão com o BD
consulta.Close
banco.Close
'Chama a rotina que desconecta do BD (libera variáveis objeto de BD)
Call Desconecta
ActiveCell.Offset(1, 0).Select
End With
Loop
'Abandona a subrotina
Exit Sub
End Sub