Una famiglia di sistemi di gestione per database relazionali di Microsoft progettati per semplificare l'uso.
ciao Nicola,
il post delle 20.51.07 del 19.10 non mostra la funzione che stai utilizzando.
Devi usare quella che ti riporto per tuo riferimento più sotto inserita nel post sopra indicato.
Come ti dicevo nel post precedente e mi sembrava dalla tua rispota fosse chiaro la funzione sotto riportata linka le tabelle del BE se non collegate e le RElinka se collegate.
Il codice di Giorgio effettua solo il RElink, questo siginfica che per valutarne il funzionamento le tabelle DEVONO essere già collegate, ma anche in quel caso non vedi nulla di diverso a meno di non cambiare il BE.
Più di così non riesco a spiegartelo, ma se metti in pratica quanto ti ho spiegato nel post del 20.11 ore 18.58.52 capisci meglio.
Inoltre se debuggi il codice, lo analizzai bene, lo studi con attenzione, come ti ho spiegato, puoi notare le differenze.
Ciao, Sandro.
rendi utilizzabile se il db non è protetto da PWD:
Option Compare Database
Option Explicit
Private Const StrPathDbBE As String = "C:\pathDeltupBe" '<-----personalizza
Public Function connectTables()
On Error GoTo errorHandler
Dim tdf As DAO.TableDef
Dim tdfLocal As DAO.TableDef
Dim dbsBE As DAO.Database
Dim dbsCU As DAO.Database
Dim strconn As String
strconn = "MS Access;DATABASE=" & StrPathDbBE
Set dbsCU = CurrentDb
' se il BE è protetto setti apri il database impostando la pwd
Set dbsBE = OpenDatabase(StrPathDbBE, False, False, "MS Access;PWD=tuaPWD") ' personalizza la Password
'se il BE non è protetto utilizzi la seguente istruzione:
'Set dbsBE = OpenDatabase(StrPathDbBE, False, False)
For Each tdf In dbsBE.TableDefs
If Not dbSystemObject Then
If tdf.Attributes = 0 Then
On Error Resume Next
If dbsCU.TableDefs(tdf.Name).Connect = "" Then
If Err.Number = 3265 Then
Set tdfLocal = dbsCU.CreateTableDef(tdf.Name)
tdfLocal.Connect = strconn
tdfLocal.SourceTableName = tdf.Name
dbsCU.TableDefs.Append tdfLocal
End If
Else
dbsCU.TableDefs(tdf.Name).Connect = strconn
dbsCU.TableDefs(tdf.Name).RefreshLink
End If
On Error GoTo 0
End If
End If
Next
Application.RefreshDatabaseWindow
ext_errorLoadAccountHandler:
If Not dbsBE Is Nothing Then dbsBE.Close: Set dbsBE = Nothing
Set dbsCU = Nothing
Set tdf = Nothing
Set tdfLocal = Nothing
Exit Function
errorHandler:
With Err
MsgBox "ERR#" & .Number _
& vbNewLine & .Description _
, vbOKOnly Or vbCritical
End With
Resume ext_errorLoadAccountHandler
End Function