Olá amigos sou novo em programação VBA, preciso de ajuda tenho uma planilha no Excel que envio os dados para um banco no Access, mas gostaria de saber como faço para colocar uma validação, para não ocorrer de enviar os mesmos dados duas vezes, segue código que estou usando para enviar os dados.
Sub base()
Dim cn As ADODB.Connection 'Variavel para base
Dim rs As ADODB.Recordset 'Variavel para tabela
Dim r As Long 'Variavel para o numero da linha na planilha
'conectando ao banco de dados
Set cn = New ADODB.Connection
cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\cmpbh\teste.mdb;"
'conectando a tabela
Set rs = New ADODB.Recordset
rs.Open "vpb", cn, adOpenKeyset, adLockOptimistic, adCmdTable 'todos os campos da tabela
'Numero inicial da planilha
r = 2
Do While Len(Range("A" & r).Formula) > 0 'Repete enquanto a coluna A for maior que zero
With rs
.AddNew 'insere novo registro no banco de dados
' Adiciona valores para cada campo da tabela
.Fields("nome_Vpb_Diurno") = Range("A" & r).Value
.Fields("horario_Diurno") = Range("B" & r).Value
.Fields("nome_Vpb_Noturno") = Range("C" & r).Value
.Fields("horario_Noturno") = Range("D" & r).Value
.Fields("data_mes") = Range("E" & r).Value
.Update 'Atualiza o novo registro
End With
r = r + 1 'proxima linha da planilha para o banco de dados
Loop
MsgBox "Dados Enviados com Sucesso", vbInformation, "Informação"
'fecha a tabela
rs.Close
Set rs = Nothing
'fecha o banco de dados
cn.Close
Set cn = Nothing
End Sub
agradeço aos colegas que me responderam sobre a atualização de dados, pensei um pouco e vejo que no momento esta validação e mais importante.
Sub base()
Dim cn As ADODB.Connection 'Variavel para base
Dim rs As ADODB.Recordset 'Variavel para tabela
Dim r As Long 'Variavel para o numero da linha na planilha
'conectando ao banco de dados
Set cn = New ADODB.Connection
cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\cmpbh\teste.mdb;"
'conectando a tabela
Set rs = New ADODB.Recordset
rs.Open "vpb", cn, adOpenKeyset, adLockOptimistic, adCmdTable 'todos os campos da tabela
'Numero inicial da planilha
r = 2
Do While Len(Range("A" & r).Formula) > 0 'Repete enquanto a coluna A for maior que zero
With rs
.AddNew 'insere novo registro no banco de dados
' Adiciona valores para cada campo da tabela
.Fields("nome_Vpb_Diurno") = Range("A" & r).Value
.Fields("horario_Diurno") = Range("B" & r).Value
.Fields("nome_Vpb_Noturno") = Range("C" & r).Value
.Fields("horario_Noturno") = Range("D" & r).Value
.Fields("data_mes") = Range("E" & r).Value
.Update 'Atualiza o novo registro
End With
r = r + 1 'proxima linha da planilha para o banco de dados
Loop
MsgBox "Dados Enviados com Sucesso", vbInformation, "Informação"
'fecha a tabela
rs.Close
Set rs = Nothing
'fecha o banco de dados
cn.Close
Set cn = Nothing
End Sub
agradeço aos colegas que me responderam sobre a atualização de dados, pensei um pouco e vejo que no momento esta validação e mais importante.
Última edição por cbento em 4/3/2014, 14:43, editado 2 vez(es)