Partager via


TableDef.RefreshLink, méthode (DAO)

S’applique à : Access 365, Access 2021, Access 2019, Access 2016

Met à jour les informations de connexion d’une table liée (espaces de travail Microsoft Access uniquement).

Syntaxe

expression . RefreshLink

expression Variable représentant un objet TableDef.

Remarques

Pour modifier les informations de connexion pour une table liée, réinitialisez la propriété Connect de l'objet TableDef correspondant, puis utilisez la méthode RefreshLink pour mettre à jour les informations. L'utilisation de la méthode RefreshLink ne modifie pas les propriétés de la table liée et les objets Relation.

Pour que ces informations de connexion existent dans toutes les connexions associées à l'objet TableDef qui représente la table liée, vous devez utiliser la méthode Refresh dans chaque collection.

À compter d’Access 365 version 2403, la méthode RefreshLink conserve les index de table existants. Si vous aviez précédemment une table liée qui perdait la clé primaire après l’exécution de la méthode RefreshLink et que vous avez ajouté du code pour recréer explicitement l’index après l’objet RefreshLink, cela entraîne désormais l’erreur 3283, « La clé primaire existe déjà ».

Exemple

Cet exemple utilise la méthode RefreshLink pour actualiser les données dans une table liée une fois que sa connexion a été modifiée d'une source de données vers une autre. La procédure RefreshLinkOutput est nécessaire à l'exécution de cette procédure.

Sub RefreshLinkX() 
 
 Dim dbsCurrent As Database 
 Dim tdfLinked As TableDef 
 
 ' Open a database to which a linked table can be 
 ' appended. 
 Set dbsCurrent = OpenDatabase("DB1.mdb") 
 
 ' Create a linked table that points to a Microsoft 
 ' SQL Server database. 
 Set tdfLinked = _ 
 dbsCurrent.CreateTableDef("AuthorsTable") 
 
 ' Note: The DSN referenced below must be configured to 
 ' use Microsoft Windows NT Authentication Mode to 
 ' authorize user access to the Microsoft SQL Server. 
 tdfLinked.Connect = _ 
 "ODBC;DATABASE=pubs;DSN=Publishers" 
 tdfLinked.SourceTableName = "authors" 
 dbsCurrent.TableDefs.Append tdfLinked 
 
 ' Display contents of linked table. 
 Debug.Print _ 
 "Data from linked table connected to first source:" 
 RefreshLinkOutput dbsCurrent 
 
 ' Change connection information for linked table and 
 ' refresh the connection in order to make the new data 
 ' available. 
 
 ' Note: The DSN referenced below must be configured to 
 ' use Microsoft Windows NT Authentication Mode to 
 ' authorize user access to the Microsoft SQL Server. 
 tdfLinked.Connect = _ 
 "ODBC;DATABASE=pubs;DSN=NewPublishers" 
 tdfLinked.RefreshLink 
 
 ' Display contents of linked table. 
 Debug.Print _ 
 "Data from linked table connected to second source:" 
 RefreshLinkOutput dbsCurrent 
 
 ' Delete linked table because this is a demonstration. 
 dbsCurrent.TableDefs.Delete tdfLinked.Name 
 
 dbsCurrent.Close 
 
End Sub 
 
Sub RefreshLinkOutput(dbsTemp As Database) 
 
 Dim rstRemote As Recordset 
 Dim intCount As Integer 
 
 ' Open linked table. 
 Set rstRemote = _ 
 dbsTemp.OpenRecordset("AuthorsTable") 
 
 intCount = 0 
 
 ' Enumerate Recordset object, but stop at 50 records. 
 With rstRemote 
 Do While Not .EOF And intCount < 50 
 Debug.Print , .Fields(0), .Fields(1) 
 intCount = intCount + 1 
 .MoveNext 
 Loop 
 If Not .EOF Then Debug.Print , "[more records]" 
 .Close 
 End With 
 
End Sub