Измените свой код с
If Not Left(tblSrc.Name, 4) = "MSys" Then
К
If Left(tblSrc.Name, 4) <> "MSys" Then
У меня была такая же проблема, и, изменив ее на вышеприведенную, она работала для меня.
Я использую следующее для объединения двух БД доступа в одну копию.
Public Sub CombineDBs()
Dim appAccess As New Access.Application 'define the copy of the database to transfer to
Dim db As Database 'Database to import
Dim td As TableDef 'Tabledefs in db
Dim strTDef As String 'Name of table or query to import
Dim Const cDir_Database As String = "Location1" 'Access Location
appAccess.Visible = False
'opens the database that needs the tables and data added to it
appAccess.OpenCurrentDatabase "location"
'opens the database to import data from
Set db = OpenDatabase(cDir_Database)
'Import tables from specified Access database.
For Each td In db.TableDefs
strTDef = td.Name
If Left(strTDef, 4) <> "MSys" Then
appAccess.DoCmd.TransferDatabase acImport, "Microsoft Access", cDir_Database, acTable, strTDef, strTDef, False
End If
Next
appAccess.CloseCurrentDatabase
db.Close
End Sub