Pessoal,
eu uso esse código para importar os dados da minha planilha excel para meu banco de dados em access, gostaria de saber se é possível no momento que eu importar.. a macro detectar que existe valores que já exitem no banco de dados. Assim eu evito duplicidade.
Private Sub importa()
'Cria variável que armazena os comandos SQL
Dim ComandoSQL As String
Dim plan As Worksheet
Set plan = Sheets("Relatório_Blocos")
'looping das colunas
plan.Range("A6").Select
'Armazena na variável o comando que fará a consulta SQL no BD Access
ComandoSQL = "select * from TB_bloco"
'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)
'laço percorre todos os registros da tabela do BD até o End Of File (final)
While Not consulta.EOF
linha = ActiveCell.Row
With consulta
plan.Cells(linha, 1) = .Fields("ID")
plan.Cells(linha, 2) = .Fields("Lote")
plan.Cells(linha, 3) = .Fields("Material")
plan.Cells(linha, 4) = .Fields("Descrição")
plan.Cells(linha, 5) = .Fields("QTD M3")
plan.Cells(linha, 6) = .Fields("Altura")
plan.Cells(linha, 7) = .Fields("Comprimento")
plan.Cells(linha, 8) = .Fields("Largura")
plan.Cells(linha, 9) = .Fields("Bloco")
plan.Cells(linha, 10) = .Fields("Endereço")
'Se houver erro
On Error Resume Next
End With
'move para próximo registro do BD access
consulta.MoveNext
'move para próxima linha planilha
ActiveCell.Offset(1, 0).Select
Wend
'Chama a rotina que desconecta do BD (libera variáveis objeto de BD)
Call Desconecta
'Exibe mensagem de sucesso na inclusão do registro
MsgBox "Dados importados com Sucesso! ", vbDefaultButton1, "Importação"
'Abandona a subrotina
Exit Sub
End Sub
Postado : 17/07/2016 8:14 am