Prezados.
Encontrei este código em uma postagem, ele atende a bem. Mas minha dúvida é como faze-lo substituir as tabelas já existentes na base.
No teste, ele importa, mas cria tabelas com final 1.
Exemplo: na minha base tenho tabela contatos, quanto ele importa ele cria tabela contatos1. Tem como adapta-lo para substituir as tabelas existentes com o mesmo nome?
Código.
Cole num modulo novo este Sub que importa todas as tabelas
Sub ImportAllTbls(sExtDbPath As String)
On Error GoTo Error_Handler
Dim db As DAO.Database
Dim tdf As DAO.TableDef
Set db = OpenDatabase(sExtDbPath)
For Each tdf In db.TableDefs
If Left(tdf.Name, 4) <> "MSys" Then
On Error Resume Next
Access.DoCmd.TransferDatabase acImport, "Microsoft Access", sExtDbPath, _
acTable, tdf.Name, tdf.Name, False
End If
Next tdf
db.Close
Set db = Nothing
Exit Sub
Error_Handler:
MsgBox "MS Access has generated the following error" & vbCrLf & vbCrLf & "Error Number: " & _
Err.Number & vbCrLf & "Error Source: ImportAllTbls" & vbCrLf & "Error Description: " & _
Err.Description, vbCritical, "An Error has Occured!"
Exit Sub
End Sub
para chamar o Sub num botão
Call ImportAllTbls("C:\bancoexterno.mdb")
Encontrei este código em uma postagem, ele atende a bem. Mas minha dúvida é como faze-lo substituir as tabelas já existentes na base.
No teste, ele importa, mas cria tabelas com final 1.
Exemplo: na minha base tenho tabela contatos, quanto ele importa ele cria tabela contatos1. Tem como adapta-lo para substituir as tabelas existentes com o mesmo nome?
Código.
Cole num modulo novo este Sub que importa todas as tabelas
Sub ImportAllTbls(sExtDbPath As String)
On Error GoTo Error_Handler
Dim db As DAO.Database
Dim tdf As DAO.TableDef
Set db = OpenDatabase(sExtDbPath)
For Each tdf In db.TableDefs
If Left(tdf.Name, 4) <> "MSys" Then
On Error Resume Next
Access.DoCmd.TransferDatabase acImport, "Microsoft Access", sExtDbPath, _
acTable, tdf.Name, tdf.Name, False
End If
Next tdf
db.Close
Set db = Nothing
Exit Sub
Error_Handler:
MsgBox "MS Access has generated the following error" & vbCrLf & vbCrLf & "Error Number: " & _
Err.Number & vbCrLf & "Error Source: ImportAllTbls" & vbCrLf & "Error Description: " & _
Err.Description, vbCritical, "An Error has Occured!"
Exit Sub
End Sub
para chamar o Sub num botão
Call ImportAllTbls("C:\bancoexterno.mdb")