Come avevo già scritto il problema non lo risolto lo solo bypassato.
Sinceremante cerco un comando che automaticamente mi aggiornasse le tabelle collegate ed ho trovato il seguente:
Public Const fForm = "Forms"
Public Const fReport = "Reports"
Public Const fMacro = "Scripts"
Public Const fModulo = "Modules"
Public Const fTabella = "Tables"
Public Const fQuery = "Queries"
Private Const cLnkTbl As String = "_LinkedTables1"
Public Function LinkTbl() As Boolean
On Error GoTo Err_LinkTbl
Dim rs As DAO.Recordset
Dim strSQL As String
Dim dbCurr As DAO.Database
Dim S As String
LinkTbl = False
Set dbCurr = CurrentDb
strSQL = cLnkTbl
dbCurr.TableDefs.Refresh
nomefileini = CurrentProject.Path & "\nometabella_Tabelle.accdb"
percorso = ";DATABASE=" & nomefileini
Dim Connessione As String
Dim Tabella As TableDef
Connessione = CurrentDb.TableDefs("Acconti").Connect
If Connessione = percorso Then
Else
Set rs = CurrentDb.OpenRecordset(strSQL)
rs.MoveFirst
Do Until rs.EOF
S = rs.Fields(0).Value
If Esiste_Oggetto(S, fTabella) Then _
CurrentDb.TableDefs.Delete S
DoCmd.TransferDatabase acLink, "Microsoft Access", _
nomefileini, acTable, S, S
rs.MoveNext
Loop
DoCmd.Quit
End If
LinkTbl = True
Exit_Here:
rs.Close
Set rs = Nothing
Exit Function
Err_LinkTbl:
LinkTbl = False
End Function
Public Function Esiste_Oggetto(ByVal Nome_Ogg As String, _
Typ_Ogg As String, Optional ByVal Nome_Dbs As String = "") As Boolean
Dim dbs As Database
Dim tdf As TableDef
Dim qdf As QueryDef
Dim X, num_ogg As Integer
If Nome_Dbs = "" Then
Set dbs = CurrentDb
Else
Set dbs = OpenDatabase("nometabella.accdb")
End If
Select Case Typ_Ogg
Case fTabella
For Each tdf In dbs.TableDefs
If tdf.Name = Nome_Ogg Then
Esiste_Oggetto = True
dbs.Close
Set dbs = Nothing
Exit Function
End If
Next tdf
Case fQuery
For Each qdf In dbs.QueryDefs
If qdf.Name = Nome_Ogg Then
Esiste_Oggetto = True
dbs.Close
Set dbs = Nothing
Exit Function
End If
Next qdf
Case fForm, fModulo, fMacro, fReport
num_ogg = dbs.Containers(Typ_Ogg).Documents.Count
For X = 0 To num_ogg - 1
If dbs.Containers(Typ_Ogg).Documents(X).Name = Nome_Ogg Then
Esiste_Oggetto = True
dbs.Close
Set dbs = Nothing
Exit Function
End If
Next
End Select
Esci:
Esiste_Oggetto = False
dbs.Close
Set dbs = Nothing
End Function
Inizialmete funzionava bene, nel momento in cui gli ho modificato il nome del file e non l'ho modificato all'interno della funzione mi è sparita la tabella "_LinkedTables" e non è stato più possibile inserirla, quindi ho corretto la funzione e creato una nuova tabella "_LinkedTables1"